我有几个执行php脚本的cron作业。 php脚本有时会做一些繁重的工作,比如在mysql表中一次更新数百条记录。
问题是作业应该每分钟运行一次。然而,它随机错过,因此不会每分钟执行。有时,它每4-6分钟执行一次,然后每1分钟执行一次,再次错过2-3次然后再恢复正常。
我在6.5岁以上
请注意php正常运行并且没有任何关于php脚本本身的问题,因为在它运行的时候,我得到了预期的结果,并且还有大约10个其他类似的脚本同时运行(每个其他脚本每分钟或每5分钟一次)
作业:
/usr/bin/php "/var/www/html/phpScriptToExecute.php" >> /var/www/html/log/phpScriptLog.log 2>&1
我的看法是,同时运行的同时脚本太多,同时访问数据库可能会出现问题。
上次信息:/var/log/cron
文件或phpScriptLog.log
文件中没有错误。
答案 0 :(得分:1)
原因可能是,您的cron作业执行时间超过1分钟,在脚本结束时打印出开始时间和结束时间以验证它。 如果cron作业正在运行,linux将无法再次执行它。
答案 1 :(得分:0)
我的猜测是它导致了PHP致命错误,但您的PHP可能没有配置为向stderr发送错误消息,这就是您的 phpScriptLog.log 为空的原因。您可以检查您的php.ini(或只是使用ini_set())以获取以下内容:
或者,如果您想要一个避免重叠cron作业的解决方案,那么SO中就有很多。