У меня есть карта.На этой карте я хочу показать живые данные, собранные из нескольких таблиц, некоторые из которых имеют поразительное количество строк.Излишне говорить, что получение этой информации занимает долго время.Также задействован пинг.В зависимости от того, находятся ли серверы в автономном режиме или далеко, сбор этих данных может варьироваться от 1 до 10 минут.
Я хочу, чтобы карта была быстрой и отзывчивой, поэтому я решил добавить новую таблицу в свойбаза данных, содержащая только те данные, которые нужны карте.Это означает, что мне нужен фоновый процесс для постоянного обновления информации в моей новой таблице.Задания Cron, конечно, возможны, но я хочу, чтобы обновление данных происходило, как только закончился предыдущий интервал.А что, если количество автономных IP-адресов внезапно увеличится, и цикл будет выполняться дольше, чем интервал задания Cron?
Мое собственное решение - создать бесконечный цикл в PHP, который запускается из командной строки.Этот цикл обновляет данные для карты в MySQL, а также записывает другие полезные данные, такие как время цикла и неудачные попытки проверки связи и т. Д., А затем перезапускается после короткой паузы (несколько секунд).
Однако - IМне постоянно говорят, что PHP-скрипт, работающий вечно, ПЛОХО.Через некоторое время он заберет гигабайты оперативной памяти (и другие ужасные вещи)
Частично я пишу этот вопрос, чтобы подтвердить, так ли это на самом деле, но некоторые советы и подсказки о том, как я буду писатьчистый цикл, который не пропускает память (если это возможно) не будет ошибочным.Мнения по этому вопросу также были бы оценены.
Ответ, который я чувствую, проливает свет на вопрос, который я отмечу как правильный.