Как непрерывно запускать программу php на сервере? - PullRequest
3 голосов
/ 25 ноября 2010

Я хочу постоянно запускать программу php на сервере, которая будет загружать некоторые вещи и сохранять их ..

Я думал о создании сценария и его запуске в cron ..

Но мне интересно, есть ли другой простой метод или легкий компонент, который занимает меньше памяти на сервере при непрерывной работе ??

Я подумал о другой простой вещи:

создание сценария php с бесконечнымmax_execution time и выполнение кода в цикле while (true) (неопределенный цикл) с некоторым сном и последующим запуском программы с использованием php ..

Какой из методов был бы лучше для этого?

Ответы [ 6 ]

2 голосов
/ 25 ноября 2010

Я создал библиотеку под названием LooPHP , которая помогает абстрагироваться от всего сумасшествия while(1) и дает возможность добавлять источники событий (более или менее это базовый цикл запуска, который вам подходит в GLib,Какао, node.js).Есть несколько примеров , которые могут дать вам знать, если вам нравится стиль письма (основанный на событиях или управляемый циклом).

Я бы посоветовал прочитать некоторые другие вопросы с помощью PHP и daemon теги .Вот несколько из моих ответов.

Но, честно говоря, CRON довольно легок и не требует реального времени (или чего-то ещеэто значит для вас) записать PHP в демон - это больше работы, чем работа.

1 голос
/ 25 ноября 2010

Запустите крона - вот для чего они.

Ваша идея зацикливания while(TRUE) и sleep() ing ненадежна и, вероятно, не так понятна другим разработчикам, которые запускают задание cron.

0 голосов
/ 25 ноября 2010

Если вы просто загружаете материал из интернета, разве не было бы разумнее использовать что-то вроде wget?С другой стороны, если вы сканируете / просматриваете веб-страницы, я думаю, что делать cronjob было бы лучше

0 голосов
/ 25 ноября 2010

Вы можете daemonize PHP-скрипт так же, как вы можете создавать Perl или Python-демон. Запуск и остановка сценария зависят от операционной системы. Существует класс PEAR System_Daemon , который помогает при написании PHP-демона.

0 голосов
/ 25 ноября 2010
  1. Почему бы не подключить SSH к компьютеру и запустить php в консоли?
  2. Если нет, выполните popen(), чтобы вызвать php-cli в вашем сценарии php.
  3. Используйте corntabдля программ, которые нужно запускать периодически - никогда не завершающий скрипт никогда не будет хорошим делом.
0 голосов
/ 25 ноября 2010

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

...