Прежде всего - привет, это - мой первый вопрос о Переполнении стека, таким образом, я буду стараться изо всех сил связываться правильно.
Заголовок моего вопроса может быть немного неоднозначным, таким образом позвольте мне сразу подробно остановиться на нем:
Я планирую проект, который включает вводы данных взятия от нескольких API "потоковой передачи", при этом Твиттер является одним примером. Мне кодировали основной сценарий в PHP, который работает неограниченно долго из командной строки, беря вход от потокового API Твиттера и делая очень простые вещи с ним.
Моя возможная цель состоит в том, чтобы иметь несколько таких выполнения процессов (возможно, daemonized использование Системного ГРУШЕВОГО класса Демона), и я хотел бы смочь управлять ими от некоторого управляющего процесса (также Сценарий PHP). Справляются, я имею в виду основные операции те, которые останавливаются/начинают и (наиболее кардинально) автоматически перезапуск процесса, который отказывает.
Я ценил бы любые указатели о том, как лучше всего приблизиться к этому углу управления процессами. Снова, извинения, если бы этот вопрос слишком расширяем - подсказки относительно более сильно сосредоточенных строк запроса, ценились бы при необходимости. Спасибо за чтение и я с нетерпением жду Ваших ответов.
Я думаю, что рекомендуемый способ создания постоянных процессов - это вообще не делать этого в PHP;)
Но вот несколько связанных вопросов, похоже, что некоторые из отзывов содержат хорошие мысли и опыт в этом.
Запустить php-скрипт как процесс-демон (особенно 2-й и 3-й ответ)
Это не работает в контексте выполнения постоянного PHP-скрипта, но Cron действительно удобен для запуска скриптов в разное время и через разные промежутки времени. Вместо того, чтобы постоянно запускать PHP-скрипт, останавливать и запускать различные другие скрипты, вы можете запускать их все с помощью Cron с подходящим интервалом.
Способ, которым вы хотите это сделать, возможен, но будет сложным и относительно трудным в обслуживании.
Если посмотреть на это по-другому, то вместо непрерывной передачи данных можно было бы передавать их по частям через регулярные промежутки времени. Технически это все еще потоковая передача, особенно с такими каналами, как Twitter.
Если какой-то канал выдает данные в реальном времени, вы можете пропустить некоторые данные между ними, тогда, возможно, этот вариант вам не подходит.
Гораздо проще управлять процессами, которые запускаются и останавливаются и которые управляют небольшими объемами данных. Все они могут проверять базу данных на наличие управляющих данных и обновлять статус. Кроме того, использование cron - это настоящее удовольствие.
Вот как я бы сделал это в наши дни.