самоустанавливающийся из бесконечного цикла php while с неожиданным временем

#php #time

#php #время

Вопрос:

у меня этот бесконечный цикл while в моем php-скрипте выполняется каждую секунду, но я в конечном итоге остановлюсь. Я пытался изменить значение или закомментировать максимальное время выполнения из php.ini или даже установить set_time_limit (9999); в моем php-скрипте, и я все еще останавливаюсь через неожиданное время, несколько секунд или минуту! где еще я могу установить это ограничение по времени для поддержки бесконечного времени цикла?

Комментарии:

1. Имейте в виду, PHP не был предназначен для работы в течение длительного времени. Вы можете получить неожиданные утечки памяти. У меня был опыт работы с PHP-скриптом, который долгое время работал нормально, а затем внезапно потреблял всю доступную память на компьютере, блокируя сервер.

Ответ №1:

Запустите ваш скрипт из командной строки.

Ответ №2:

 <?php

while (true) {
  set_time_limit(10); // 10 seconds allowed to reach next iteration
  usleep(1000);
}
  

Должно работать просто отлично? Также проверьте потребление памяти. Включите протоколирование ошибок, чтобы вы могли видеть, останавливается ли ваш скрипт из-за ошибки…

Ответ №3:

Какой веб-сервер вы используете? Если вы запускаете его на удаленном хостинге, это может быть проблема с веб-сервером внешнего интерфейса, таким как lighttpd. В этой ситуации решения нет.