Crontab没有运行完成

时间:2013-08-09 08:49:23

标签: php linux cron turnkeylinux.org

我目前遇到一个奇怪的问题,我创建了一个大型脚本,似乎每次都没有完成。

详细说明,该脚本会对数据库和API执行大量查询,以更新我的网站上的数据。它已经运行了几个星期,但在此之前,在编写本文时,如果脚本连续多次启动(通常为2次),脚本将停止运行..有时。

所以问题不是很一致,但它是我网站的重要组成部分,我需要它在特定时间每天运行一次以保持一切运行。

脚本本身应该不是问题。起初我们必须解决它会收到超时的问题。超时是一个很大的问题,因为脚本可能需要一个小时才能完成。

我检查了什么:

- 是否有任何cronjobs干扰我的cronjob? *不是我能看到的。很多标准维护计算机正在运行,但它们不应该导致任何问题?我们自己创建的其他cronjobs没有运行,而有问题的cronjob是。

- 我有足够的内存吗? *几乎太多了。

- 脚本是否正常工作,是否可能是您遇到问题的原因? *可能,但我不知道如何。我已经手动检查了一百万次脚本。

- 你打开了日志吗? *我没有,这可能是一个好主意,但我不知道要打开哪些日志。此外,我们过去曾遇到错误报告问题,所以如果我打开它,我担心它不会有任何问题。

我在跑什么: - 交钥匙Linux

作为终结者,脚本很难调试,它需要大约一个小时才能完成,而afaik它永远不会停在相同的代码中。

tl;博士:我应该如何调试似乎随机崩溃一段时间然后再长时间停止崩溃的cronjob?

修改 谢谢你迅速的回应 @Basile Starynkevitch:我们已经尝试过了,但它没有抛出任何错误,只是停止了。脚本中没有任何内容可以导致这种情况。

我不能告诉你我认为的脚本的相关部分,它太大了。但这归结为很多查询和数据处理。

@fedorqui:cd / var / www / cronjobs /&& / usr / bin / php -q -f sc_distri_cronjob.php 它位于公共文件夹中用于测试目的,但我认为它与我的问题没有任何关系。由于脚本成功运行很长一段时间,我想权限很好吗?

@Flosculus:我们已经锁定了,这引起了我们的注意。它运行“罚款”一次,然后我们再次运行它告诉我们文件仍然锁定,即使它停止运行。锁在最后释放,它不包含任何错误,脚本中没有任何内容可以故意阻止它运行。

1 个答案:

答案 0 :(得分:1)

由于你的脚本非常大,它的运行时间可能比php.ini的max_execution_time长 在足够长的时间内尝试使用set_time_limit() 也许您还会跟踪脚本平均运行的时间并调整呼叫。