Долгосрочные сценарии PHP не являются по сути плохими, но в них сборщик мусора подсчитывает ссылки не для всех возможных сценариев очистки памяти, но в более поздних реализациях имеется более продвинутый сборщик, который должен очищать намного больше (средство проверки циклических ссылок).

я есть карта На этой карте я хочу показать живые данные, собранные из нескольких таблиц, некоторые из которых имеют поразительное количество строк. Излишне говорить, что получение этой информации занимаетдолго время. Также задействован пинг. В зависимости от того, находятся ли серверы в автономном режиме или далеко, сбор этих данных может варьироваться от 1 до 10 минут.

Я хочу, чтобы карта была быстрой и отзывчивой, поэтому я решил добавить в свою базу данных новую таблицу, содержащую только те данные, которые нужны карте. Это означает, что мне нужен фоновый процесс для постоянного обновления информации в моей новой таблице. Задания Cron, конечно, возможны, но я хочу, чтобы обновление данных происходило, как только закончился предыдущий интервал. А что, если количество автономных IP-адресов внезапно увеличится, и цикл будет выполняться дольше, чем интервал задания Cron?

Мое собственное решение - создать бесконечный цикл в PHP, который запускается из командной строки. Этот цикл обновляет данные для карты в MySQL, а также записывает другие полезные данные, такие как время цикла и неудачные попытки проверки связи и т. Д., А затем перезапускается после короткой паузы (несколько секунд).

Тем не менее, мне постоянно говорят, что PHP-скрипт, работающий вечно, ПЛОХО. Через некоторое время он заберет гигабайты оперативной памяти (и другие ужасные вещи)

Частично я пишу этот вопрос, чтобы подтвердить, так ли это на самом деле, но некоторые советы и рекомендации о том, как мне написать чистый цикл, не пропускающий память (если это возможно), не сработают. Мнения по этому вопросу также будут оценены.

Ответ, который я чувствую, проливает свет на проблему, которую я отмечу как правильную.

Ответы на вопрос(5)

Ваш ответ на вопрос