我的工作因生成错误而失败:
2018-02-08 13:05:38,704 INFO exited: example-worker_00 (exit status 255; not expected)
2018-02-08 13:05:39,706 INFO gave up: example-worker_00 entered FATAL state, too many start retries too quickly
这是 Ubuntu 16.04 上的 Supervisor 版本 3.2.0(可通过 apt-get 获取最新版本)。
这是我的工人会议:
[program:example-worker] /etc/supervisor/conf.d/example-worker.conf
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/example.com/artisan queue:work sqs --sleep=3 --tries=100 --daemon --queue=example-queue --timeout=290
autostart=true
autorestart=true
startretries=2
user=forge
numprocs=2
logfile_maxbytes=10240
logfile_backups=1
redirect_stderr=true
stdout_logfile=/home/forge/example.com/storage/logs/workers/example-worker.log
我尝试按照其他人的建议添加startretries=2
部分too many start retries too quickly
错误,但没有帮助。
我的配置有问题吗?据我所知,这个看起来与成功启动的 worker 相同。
答案1
我也遇到了同样的错误。我注意到有一个目录错误。重新检查目录(/应用程序)应执行命令的位置。
# Queue Worker
[program:queue-worker]
command=/usr/local/bin/php /app/artisan queue:work --tries=3
directory=/app
autostart=true
autorestart=true
startretries=3
user=www
stderr_logfile=/app/storage/logs/supervisor.err.log
stdout_logfile=/app/storage/logs/supervisor.out.log
答案2
我也遇到了同样的问题。我发现我的conf中的用户没有权限写入日志。
[root@ecs-gz-sdk01 logs]# php /data/www/demo/artisan queue:work redis --sleep=3 --tries=3
[2019-11-19 15:39:25] Processed: App\Jobs\DoSth
[root@ecs-gz-sdk01 logs]# su www
[www@ecs-gz-sdk01 logs]$ php /data/www/demo/artisan queue:work redis --sleep=3 --tries=3
[www@ecs-gz-sdk01 logs]$