调度PHP脚本

时间:2012-02-09 04:24:08

标签: php linux scheduled-tasks

我有一个我需要经常运行的php脚本,即大约每10秒钟。考虑到所需频率,似乎cron不合适。

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

php,mysql,linux

非常感谢任何建议。

4 个答案:

答案 0 :(得分:2)

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

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

您可以使用sleep函数在每次循环执行之间创建暂停:http://php.net/sleep

答案 1 :(得分:0)

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

答案 2 :(得分:0)

使用在infinate循环中运行的shell脚本。这个脚本应该触发你的PHP脚本执行一次(只有一次)然后退出。

您可以在使用sleep命令运行之间设置延迟。

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

答案 3 :(得分:0)

在cron中,您可以将脚本设置为每10秒执行一次。我担心,在这种情况下你的脚本需要多长时间才能执行。

另一种选择是你可以在程序中创建一个无限循环,然后要完成的任务将在循环块内。执行一次循环后,使用sleep或usleep放置10秒的延迟。在这里你无法控制该程序。如果要停止程序,需要使用linux kill命令来终止任务。