Назад | Перейти на главную страницу

Gearman не работает при работе с Supervisord

Я тестирую Gearman на выделенном сервере заданий (Ubuntu 12.04) для моего проекта PHP (используя pecl / gearman в качестве имплементации PHP).

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

WARNING [     4 ] lost connection to client recv(peer has closed connection) 127.0.0.1:37126 -> libgearman-server/io.cc:608
  ERROR [     4 ] Failed while in _connection_read() -> libgearman-server/io.cc:489

Конфигурация супервизора по умолчанию, я только что добавил программу:

[program:migration]
command=/path/to/script
process_name=%(program_name)s_%(process_num)02d
numprocs=10
stdout_logfile=/var/log/gearman.log
stderr_logfile=/var/log/gearman-error.log
stdout_logfile_maxbytes=1MB
environment=GEARMAN_USER=gearman
autostart=true
autorestart=true
user=gearman
stopsignal=KILL

Информация о процессе Gearman:

gearman   9802  0.0  0.0 476116  1780 ?        Ssl  12:18   0:00 /usr/sbin/gearmand --pid-file=/var/run/gearman/gearmand.pid --user=gearman --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=127.0.0.1

При тестировании супервайзер:

supervisord -n -c /etc/supervisor/supervisord.conf 

Я как бы застрял здесь, так как сообщение об ошибке действительно не возвращает результаты в Google. Любая помощь приветствуется.

Произошла та же ошибка почти в том же стеке серверов и нашла решение. Предупреждение и ошибка появляются, потому что вы пытаетесь отправить задание незарегистрированному работнику. Проверьте имя своего воркера и с помощью ps -ax в командной строке проверьте, запущен ли он.

Отправка задания несуществующему исполнителю в командной строке с помощью gearmand -f не даст вам никакой обратной связи. Выполнение этого с использованием модуля pecl приводит к ошибке.

PS: Я знаю, что вы уже спрыгнули с корабля и пошли вместе с Бинстолкдом, но, возможно, это поможет кому-то другому.