如何在没有cron,perl等的情况下每5-10分钟运行一次PHP脚本?

时间:2009-12-07 04:04:03

标签: php automation

我想在服务器上每5分钟运行一次脚本。我没有任何类型的管理权限来做cron job等。

我不是很好的php程序员,所以这个问题可能看起来很奇怪,但如果你理解,请告诉我一个解决方案。

9 个答案:

答案 0 :(得分:16)

听起来你的唯一解决方案就是“穷人的Cron”。

您所做的是创建一个脚本,放置在每隔5分钟运行一次的每个页面之上。但不保证每5分钟运行一次。因为它需要有人访问“穷人的cron”的页面,如果没有人访问超过5分钟,那么它将不会运行,直到有人这样做。

一些示例代码:

<?php
 // load the last run time from a file, database, etc
 if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes
     // do your task here
     // save the last run time to a file, database, etc
 }

答案 1 :(得分:15)

我使用webcron.org这是一种经济实惠的在线服务。对我来说,优势在于我可以在所有服务器上概览所有计划任务。

答案 2 :(得分:11)

这是另一个'黑客'。由于你无法在脚本所在的机器上运行cron,也许你可以在另一台机器上运行cron。

如果你可以...设置一个cron作业每5分钟运行一次......作业可以是一个简单的PHP脚本,可以调用你的其他PHP脚本。您可以使用cURL来“调用”您的脚本(如果该脚本由Web服务器提供)

答案 3 :(得分:3)

请参阅thisthis


(已编辑以包含链接中的内容。)

  • PHP Cron Daemon由数据库驱动,以安排任务的执行(如cron)。它可以解析crontab文件并将作业调度定义提取到MySQL数据库表中。当需要运行预定作业时,它会将crontab定义中的作业命令作为PHP代码作为单独的进程执行。作业PHP代码的输出也存储在数据库表中。

答案 4 :(得分:2)

我就是这样做的

if(date('i', time())%5==0) {
// run this code
}

答案 5 :(得分:1)

类似的东西:

ini_set('max_execution_time', 'sometime'); 
while(1){
    //do something
    sleep(sometime);
}

虽然我不建议这样做。是时候搬到满足您需求的服务器了。

答案 6 :(得分:1)

我确定这些工具可以帮助您处理您的请求:

SetCronJob - www.setcronjob.com

Cronless - cronless.com

EasyCron - www.easycron.com

在线Cron Jobs - www.onlinecronjobs.com

Corntab - www.corntab.com

getCron - www.getcron.com

然而,从其他网站上依赖并不是一个好主意。

坦克到 Google

答案 7 :(得分:1)

我的解决方案,如果您的服务器是Linux。制作bash脚本:

#bin/bash
while [ true ]
do
     //do whatever you want, use curl, lynx to your page...
     sleep 5m
done

运行它,如果你的服务器不会重启或脚本不会被杀死你就没事了。

这个不是一个好的解决方案,但有效。

答案 8 :(得分:0)

我会推荐这项服务,我今天使用它,它似乎运作良好。

Cron-Job

是的,它是免费的!