2012-02-09 52 views
0

我有一个PHP脚本,我需要频繁运行,即大约每10秒。考虑到所需的频率,cron似乎不适合。调度PHP脚本

理想情况下,我想运行我的脚本; a)与一个短停顿(比如说)每次执行之间5秒,或 b)一种环安排脚本每10秒运行

的PHP,MySQL,LINUX

任何建议都不胜感激。

+1

也许这可以帮助:http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/ – 2012-02-09 04:35:53

+0

@vucetica:当我点击upvote你的答案,它不再存在了! – 2012-02-09 04:37:34

+1

是的,有人评论说做一个评论比较合适,我同意。 – 2012-02-09 04:49:00

回答

2

设置每分钟cronjob来运行您的PHP脚本。

在您的PHP脚本中,循环运行代码6次。

可以使用sleep功能创建的每个循环的执行之间的停顿:http://php.net/sleep

0

您可以设置cron运行每分钟来初始化脚本,然后创建一个循环来检查日期(“s”);如果它低于51,那么重复循环,否则退出循环,所以你不会产生无限循环。虽然你需要记住,这是非常低效的,因为它会让php不停地运行,并且可能使你的服务器无法正常工作。还有其他更高效的调度程序可以在更短的时间内运行。我所做的一件事就是创建一个运行在盒子上的c/C++守护进程,并且每10秒钟触发一次php应用程序。尽管这样效率更高,并且允许php脚本退出,但您必须添加错误检查以确保您的服务器以10秒为间隔响应或实际获得了ping,例如,如果它运行在apache下,服务器非常繁忙。

0

使用在无限循环中运行的shell脚本。这个脚本应该触发你的PHP脚本,一次(只有一次)完成它的任务,然后退出。

你可以在运行和睡眠命令之间加一个延迟。

这样做是为了让PHP在每次运行后退出,以便PHP可以释放内存和CPU时间。

0

在cron您可以设置脚本在每10秒执行。恐怕,在这种情况下,脚本需要多少时间来执行。

另一个选择是你可以在程序中创建一个无限循环,然后要完成的任务将在循环块内。在执行一次循环后,使用睡眠或睡眠时间延迟10秒。在这里,你对该程序有很大的控制权。如果你想停止该程序,需要使用linux kill命令来终止任务。

+0

不,在cron中,您无法将脚本设置为每10秒执行一次。 AFAIK,最小间隔是1分钟。 – 2012-02-18 14:54:09

+0

如果是这样,您需要连续运行脚本并在每次迭代之间进行一次睡眠。无限循环延迟将有所帮助。 – Kiran 2012-02-19 15:03:15