使用Cron作业激活PHP脚本但它没有完全运行

时间:2012-05-03 23:31:16

标签: php cron

我正在使用cronjob来激活php脚本。虽然当我从浏览器手动执行此操作时,脚本需要3-4秒才能加载,并将结果输出到数据库中。

当cron作业完成时,似乎脚本无法在分配的时间内完成并且cronjob在中途停止加载脚本,cron工作大约1/10的时间,其余的9/10倍无法完成任务。有没有办法可以确保每次cron作业激活脚本时都完全加载脚本?

脚本很简单,完全基于php。有什么建议?

1 个答案:

答案 0 :(得分:2)

我建议实施一个锁文件(overrun protection)解决方案。基本上当你的脚本启动时它会检查一个锁文件,如果锁存文件存在,脚本可以假设先前的咒语仍然在运行,因此它将停止执行。当脚本完成后,它将删除锁定文件,以便后续运行可以通过锁定文件检查并完整执行。

锁文件通常包含脚本生成的进程ID,通常位于/var/lock/my_script.lock之类的位置。

您可以谷歌搜索更多信息,但这里有site,其中包含一个锁定文件示例。