Для мониторинга max_execution_time
конкретного сценария, я использую
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;
}
}
Других решений пока нет …