2010-04-09 5 views
5

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

Название моего вопроса может быть немного неоднозначен, поэтому позвольте мне расширить на него сразу:

Я планирую проект, который включает в себя прием входных данных из нескольких «потоковых» API-интерфейсов, Twitter является одним из примеров. У меня есть базовый сценарий, закодированный в PHP, который работает неопределенно из командной строки, принимая входные данные из API потокового трафика Twitter и делая с ним очень простые вещи.

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

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

+0

FYI Я создал «Supervisor», приложение Python для управления процессами, и это, похоже, делает именно то, что мне нужно! Ссылка была выполнена из [Запускаем php-скрипт как процесс демона] (http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) - указано ниже Пеккой (еще раз спасибо!) , Сам супервизор можно найти здесь (http://supervisord.org/). – BigglesZX

ответ

3

Я думаю, что рекомендуемый способ иметь постоянные процессы не делать это в PHP вообще;)

Но вот некоторые смежные вопросы, похоже, некоторые из обратной связи содержит некоторые хорошие мысли и опыт в этом ,

Больше в search.

+0

Это супер - вторая ссылка, которую вы опубликовали, действительно дала много полезных ссылок! Исследование сейчас. Спасибо за ваш вклад :). – BigglesZX

2

Это не работает в контексте запуска постоянного PHP-скрипта, но Cron действительно удобен для запуска скриптов в разное время и с различными интервалами. Вместо того чтобы иметь скрипт PHP, который работает постоянно, останавливая и запуская другие скрипты, вы можете запускать их все с помощью Cron с подходящим интервалом.

+0

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

0

Способ, которым вы хотите это сделать, возможно, но будет сложным и относительно сложным в обслуживании.

Если вы посмотрите на него по-другому, вместо того, чтобы постоянно парить, вы можете чередовать данные с регулярными интервалами. Технически его все еще потоковое, особенно с каналами, такими как твиттер.

Если какой-либо канал перекачивается в реальном времени, вы можете пропустить некоторые данные между ними, возможно, это не вариант для вас.

Его гораздо проще управлять процессами, которые запускаются и останавливаются и которые управляют небольшими объемами данных. Все они могли бы проверять базу данных для управления данными и обновлять статус. Кроме того, использование cron - настоящее удовольствие.

Так я и сделал бы это в наши дни.

Смежные вопросы