繁体   English   中英

Cronjob未完成

[英]Cronjob not running to completion

我目前遇到一个奇怪的问题,我创建了一个大型脚本,该脚本似乎并非每次都能运行完毕。

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

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

脚本本身不应该成为问题。 首先,我们必须解决一个超时问题。 超时是一个大问题,因为脚本最多可能需要一个小时才能完成。

我检查的内容:

-是否有cronjob干扰我的cronjob? *据我所知。 许多标准维护权正在运行,但是它们应该不会引起任何问题? 我们创建的其他cronjobs不在运行,而有问题的cronjob在运行。

-我是否还有足够的存储空间? *太多了。

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

-您打开日志了吗? *我没有,这可能是个好主意,但我不知道要打开哪个日志。 另外,过去我们也遇到过错误报告问题,因此,如果打开它,恐怕不会发现任何问题。

我正在运行什么: -交钥匙Linux

作为完成者,该脚本很难调试,大约需要一个小时才能完成,并且永远不会停止在同一代码上。

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

编辑谢谢您的迅速回复@Basile Starynkevitch:我们已经尝试过了,但是它不会抛出任何错误,只是停止了。 脚本中没有任何东西可以引起这种情况。

我无法向您展示脚本的相关部分,因为它太大了。 但是最终归结为大量查询和数据处理。

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

@Flosculus:我们有一个锁,这就是引起我们注意的地方。 它运行一次“精细”,然后再次运行,它告诉我们即使文件停止运行,该文件仍处于锁定状态。 该锁将在最后释放,并且不包含任何错误,脚本中的任何内容都无法故意阻止其运行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM