每分钟的cron工作有时都没有运行

时间:2015-02-04 07:16:35

标签: php cron centos6.5

我有几个执行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文件中没有错误。

2 个答案:

答案 0 :(得分:1)

原因可能是,您的cron作业执行时间超过1分钟,在脚本结束时打印出开始时间和结束时间以验证它。 如果cron作业正在运行,linux将无法再次执行它。

答案 1 :(得分:0)

我的猜测是它导致了PHP致命错误,但您的PHP可能没有配置为向stderr发送错误消息,这就是您的 phpScriptLog.log 为空的原因。您可以检查您的php.ini(或只是使用ini_set())以获取以下内容:

  1. display_errors:如果要在stderr
  2. 上显示错误,请将其设置为on / true
  3. log_errors:如果要将错误消息发送到文件
  4. ,请将其设置为true
  5. error_log:将其指向您希望将错误存储在
  6. 中的文件

    或者,如果您想要一个避免重叠cron作业的解决方案,那么SO中就有很多。