Gearman работа в фоновом режиме

Всем привет.
Второй день мучаю Gearman в связке с php. Всё круто но интересует один момент.
Хочу что бы он обрабатывал задачи в фоновом режиме то есть.
Сейчас для того что бы отработать задачу необходимо запустить воркер и он висит в командной строке.
Требуется запустить и закрыть командную строку но воркер должен продолжать работать.
Пробовал делать вывод в /dev/null но это не работает.
Как лучше поступить?
Обязательно использовать supervisord??? Или есть варианты оптимальнее?
  • Вопрос задан
  • 4117 просмотров
Решения вопроса 1
Runit (но это аналог supervisord), весьма просто запуск в одну строку, умеет вести лог, запускать процессы от пользователя, в случае падения процесса поднять его, заменять init.d скрипты. насколько я помню написан на C и есть минимум ресурсов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@rowdyro
У меня все воркеры германа работают вот так
/usr/bin/php worker.php 2>&1 > /var/log/worker.log &

запускаются в сервисном скрипте, а в кроне висит сторожек, который мониторит процессы по pid файлу
Ответ написан
Комментировать
smartfin
@smartfin
1) можно кроном запускать воркер, а в нем встроить проверку на количество запущенных воркеров, основанную на pid файлах.
2) супервизором
3) Как вариант, если работа на удаленном сервере — воспользоваться screen/tmux
Ответ написан
Комментировать
Skpd
@Skpd
Можно в пхп скрипте сделать 2 раза форк и получить процесс, который отвязан от консоли.
Ответ написан
Комментировать
@sandrain
У Supervisord'а наблюдались глюки при большом количестве воркеров, так что будьте осторожней

Пруф
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы