PHP ini_set max_execution_time nog工作正常吗?
要监视特定的脚本max_execution_time
,我用PHP ini_set max_execution_time nog工作正常吗?
ini_set('max_execution_time', 600); //600 seconds = 10 minutes
在我的脚本的顶部。然而,当我建立同一个文件的记录,它返回我下面的:
25-09-2017 23:08:01|STARTED
25-09-2017 23:09:01|ALREADY RUNNING
25-09-2017 23:10:01|ALREADY RUNNING
...................|ALREADY RUNNING
26-09-2017 01:09:01|ALREADY RUNNING
26-09-2017 01:10:01|ALREADY RUNNING
26-09-2017 01:11:01|STARTED
26-09-2017 01:12:01|ALREADY RUNNING
26-09-2017 01:13:01|ALREADY RUNNING
...................|ALREADY RUNNING
26-09-2017 03:10:01|ALREADY RUNNING
26-09-2017 03:11:01|ALREADY RUNNING
26-09-2017 03:12:01|STARTED
26-09-2017 03:13:01|ALREADY RUNNING
26-09-2017 03:14:02|ALREADY RUNNING
...................|ALREADY RUNNING
26-09-2017 05:09:01|ALREADY RUNNING
26-09-2017 05:10:02|ALREADY RUNNING
26-09-2017 05:11:01|STARTED
26-09-2017 05:12:01|ALREADY RUNNING
26-09-2017 05:13:02|ALREADY RUNNING
26-09-2017 05:14:01|ALREADY RUNNING
...................|ALREADY RUNNING
26-09-2017 07:14:01|ALREADY RUNNING
26-09-2017 07:15:01|ALREADY RUNNING
26-09-2017 07:16:01|STARTED
的...................|ALREADY RUNNING
代表多个消息重复其间的每一分钟。
我做错了什么,因为间隔不是10分钟?
编辑:
while循环,我有:
while (true) {
//DO PROCESSING WHEN FILES ARE PRESENT
Sleep(1);
}
只需手动检查的执行时间。
$max_exec_time = 600;
$start_time = time();
while (true) {
do_something();
sleep(1);
if (time() - $start_time > $max_exec_time) {
exit;
}
}
这实际上是一个好主意!谢谢..!已知此方法考虑的任何缺点? –
只有一个我能想到的是它不会退出,直到do_something()完成。所以你应该设置max_execution_time以防万一。 – Dmitri
好的,谢谢你的反馈 –
你是否检查过你的实际超时限制是用phpinfo(),并用浏览器加载页面? 如果您正在运行php-fpm和nginx或任何旧的“Apache和PHP”限制,实际的时间限制可能会被设置,并覆盖PHP自己的php.ini,否则在哪里。 – DocWeird
@DocWeird,我用cronjob运行脚本。 phpinfo表示最大。对于本地值和主值,执行时间均设置为30。 –
您是否在脚本中使用sleep -command? IIRC使用睡眠不会增加执行时间。 – DocWeird