Почему так плохо постоянно запускать PHP-скрипт?

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

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

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

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

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

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

7
задан John Parker 20 March 2011 в 22:56
поделиться