我在服务器中有一个cron,它设置为2 6 *** wget http://test.com/test.php
在此文件中,它会获取10000条记录并进行操作。 当我执行此文件时,它会在执行一段时间后停止(可能是,它达到了最大执行时间。没有应用程序错误,因为它适用于少量记录)。
我有一个解决方案,先取100条记录然后处理,关闭mysql连接,再睡2分钟,然后接下来的100条记录。
它会解决执行时间问题还是两者都有效?
答案 0 :(得分:0)
如果你睡了两分钟,脚本将达到默认的最大值。在第一个睡眠周期内执行时间为30秒。
您可以使用
增加该限制ini_set("max_execution_time", 300); //for 5 minutes
然而,它只是一个症状修复,而不是一个真正的解决方案,或者更改你的算法,以便你的记录分成几组,然后可以由一个接一个地运行的几个cronjobs顺序处理,或者由几个cronjobs平行处理同时,php pthreads或forking - 如果这两个选项适用于您的服务器配置。
但是,您应该手动检查cronjob的输出,以查找执行时间以外的可能问题,例如内存泄漏。