Laravel Queue Worker о проблеме настройки Amazon EC2 - PullRequest
0 голосов
/ 08 ноября 2018

Я развернул проект Laravel на экземпляре EC2. Я использую драйвер очереди базы данных для обработки моих заданий в очереди. Я следовал приведенным ниже инструкциям для настройки супервизора: https://gist.github.com/vrajroham/6565c4b2e9b4db693c1524394545a610

Однако, когда я пытаюсь запустить laravel worker с помощью команды

/usr/local/bin/supervisorctl start laravel-worker:*

Я получаю следующий ответ:

laravel-worker: ERROR (no such group)

ниже мой файл настроек (laravel-worker.conf):

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/api/artisan queue:work --tries=3
autostart=true
autorestart=true
user=ec2-user
numprocs=5
redirect_stderr=true
stdout_logfile=/var/www/api/storage/worker.log

Я просматривал похожие проблемы, но не смог решить проблему. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 ноября 2018

Вероятно, это связано с тем, что superviserd не читает вашу конфигурацию. Попробуйте перезагрузить супервизор.

sudo supervisorctl reread
sudo service supervisord reload

Что я обычно делаю на kubernetes, так это создание одного конфигурационного файла для супервизора с. Каждый раз, когда запускаются мои рабочие контейнеры, запускается следующий скрипт:

    echo "Creating config files..."
    rm /etc/supervisor/supervisord.conf && \
    dd of=/etc/supervisor/supervisord.conf << EOF
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)

[supervisord]
logfile=/dev/stdout ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false               ; (start in foreground if true;default false)
minfds=1024                  ; (min. avail startup file descriptors;default 1024)
minprocs=200                 ; (min. avail process descriptors;default 200)
user=root                ;

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /code/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
EOF

    echo "Starting queue..."
    exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf

Работает как шарм.

...