Коллеги, а есть ли процесс-менеджер для пхп, как php-fpm, только который бы исполнял скрипты не по fastcgi-запросам, а по другим событиям, например, сообщениям из очереди?
Вряд ли тут нужно что-то готовое. Проще в цикле в скрипте обрабатывать пачку из очереди, а несколько процессов запустить средствами какого-нибудь supervisord.
Это всего-лишь правило для маппинга http-реквестов в fastcgi... Я говорю о том, что инициировать выполнение скриптов должны мочь и другие события (помимо fastcgi запросов, или http запросов, превращаемых в fascgi нджинксом).
Клёво написаная статья. Единственное что: едва ли бывает космических нагрузок без космических бюджетов (и наоборот, конечно!). Зря что ли, баду, вон, несколько датацентров содержит и не жмётся на условия прогерам и админам...
Доктрина течет только в путь, это да. Вариантов два. Первый, как вам уже посоветовали, супервайзер, который поднимает воркер, после падения. Monit отлично подходит для этого, а количество воркеров удобно меняется в его конфиге. Второй вариант, написать простой воркер на чем нибудь более для этого подходящем, чем PHP, да хоть на баше. А вся его работа только в том, чтобы при получении нового сообщения из очереди, запускать консольную команду PHP, которая его обрабатывает и благополучно умирает. Подозреваю, что вместе с Доктриной у вас там Симфони, а команды там удобно пишутся из коробки.
У второго варианта есть проблема в том, что очень большие расходы на создание процесса. Пока что делаем первым. Но, думал, как бы хорошо было именно с процесс-менеджером.
Comments