【发布时间】:2011-02-18 07:06:13
【问题描述】:
我有一个每日 cron 工作,一次抓取 10 个用户,并与他们一起做很多事情。每天有 1000 名用户参与该流程。我不希望 cron 作业重叠,因为它们对服务器负载很重。他们从各种 API 调用东西,所以我有超时和缓慢的数据获取来应对。
我尝试使用标志将 cron 作业标记为正在运行,但它不够可靠,因为某些 PHP 脚本可能会以各种方式超时或失败。
有没有什么好的方法可以阻止cron作业多次调用PHP脚本,或者控制它被调用的次数,所以例如只有3个实例?
如果可能的话,我更喜欢 PHP 中的解决方案。
目前我将标志作为值存储在数据库中,使用锁类型文件是否更好,就像这里 https://stackoverflow.com/questions/851872/does-a-cron-job-kill-last-cron-execution 一样?
【问题讨论】: