Как работает php 'daemons'? - PullRequest
       8

Как работает php 'daemons'?

1 голос
/ 25 апреля 2011

Я изучаю php и хотел бы написать простой монитор форума, но я столкнулся с проблемой. Как мне написать скрипт, который регулярно загружает файл? Когда страница загружается, php запускается только один раз, и если я помещу его в цикл, все это нужно будет запустить до завершения загрузки страницы. Но я хочу, скажем, загружать файл каждую минуту и ​​делать уведомления на странице, когда файл меняется. Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 25 апреля 2011

Другие уже предложили использовать периодический скрипт cron, который, я бы сказал, вероятно, является лучшим вариантом, хотя, как упоминает Пол, это зависит от вашего варианта использования.

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

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

1 голос
/ 25 апреля 2011

Как правило, вы будете действовать в два этапа:

  • Во-первых, у вас будет PHP-скрипт, который будет запускаться каждую минуту - с помощью crontab.
    • Этот скрипт выполнит тяжелую работу: загрузка и анализ страницы
    • И хранение некоторой информации в общем месте - базе данных, обычно
  • Тогда ваши веб-страницы должны будут только проверить это общее местоположение (база данных) , если информация там есть.


Таким образом, ваши веб-страницы всегда будут работать:

  • Даже если пользователей много, только cronjob загрузит страницу
  • И даже если cronjob некоторое время не работает, веб-страница будет работать; худшая вещь - это устаревшая информация.
0 голосов
/ 25 апреля 2011

Как мне написать скрипт, который регулярно загружает файл?

Существуют программы для этого, например 'cron' в linux (или unix)

Когда страница загружена, php выполняется только один раз,

только один раз, точно так же, как index.php вашего сайта ....

Если вы хотитечтобы обновить страницу, которая отображается в браузере, чем вы должны использовать какую-то форму AJAX, если вы хотите что-то другое, чем ваш вопрос не понятен /me......

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...