Laravel 队列与 supervisor 一起使用,时间长了,队列就跑不动了
laravel 版本
5.5
队列驱动
database
supervisor 配置
[program:laravel-worker1]
command=/usr/bin/php /app/artisan queue:work --sleep=3 --tries=3 --timeout 60
autostart=true
autorestart=true
numprocs=8
stdout_logfile=/var/log/laravel/queue.log
问题
昨天发现 supervisor 跑了一天之后,队列没有执行了,查看 supervisorctl status ,显示 laravel 队列是 RUNNING 状态,但是 job 表中的任务却一直没有执行。运行 supervisorctl restart all 后,队列恢复运行
猜想
- 是不是我命令少了什么参数导致的。
laravel队列是否有隔段时间重启自己的功能?
关于 LearnKu
目测是:
里的
/app/artisan有问题,你可以使用把命令单独提取出来进行排查,执行以下命令试试:另外,查看下
/var/log/laravel/queue.log有没有错误发生。@Summer 好的感谢
修改了队列代码 就要重启 队列 以使它生效
@Summer 上线一周了,队列一直在跑,之前应该是代码问题 :laughing:
@minororange 是因为内存的问题吗,我这边也是这个情况,我做的爬虫处理很多数据,他经常会停
我感觉会不会是我supervisor 配置了两个队列的问题呢?