время выполнения — PHP ini_set max_execution_time nog работает правильно?

Для мониторинга 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);
}

0

Решение

Просто проверьте время выполнения вручную.

$max_exec_time = 600;

$start_time = time();
while (true) {
do_something();
sleep(1);
if (time() - $start_time > $max_exec_time) {
exit;
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]