如何限制CLI PHP脚本的执行时间

时间:2017-02-26 19:17:57

标签: php command-line-interface

我有一个问题,即如果没有响应,偶尔我运行的脚本(依赖于其他网站)会尝试从这些其他网站检索元素。我很欣赏我需要再次查看这部分代码。

但是,与此同时,我想了解为什么我在PHP代码顶部尝试过的这些命令无法正常工作?

ini_set('max_execution_time', 30);
set_time_limit(30);

脚本完全在PHP中运行,并作为CLI PHP(不是从浏览器启动的网页)执行:

php /var/www/html/client/index.php

脚本执行正常,但如果其中一个挂起,它会作为一个进程(通过TOPHTOP查看)卡住,并在尝试执行时使用资源,并且永远不会关闭。 / p>

除了我已经尝试过的之外,还有其他方法可以强制脚本停止和关闭吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您正在使用set_time_limit(30);,这会增加脚本执行的时间。阅读其文档here

如果您将该行放入循环中,则会在每次传递时为脚本执行时间限制添加时间。

CLI的默认时间限制设置为0,这是无限的。使用相同的方法,但只是在脚本的开头,并确保不在任何循环内或通过递归等多次执行。

这应解决问题。