Laravel 5队列作业冻结

时间:2015-06-01 04:53:43

标签: php laravel laravel-5

我正在实施一个处理上传文件的命令。

这些文件最多可包含300MB的数据,因此作业需要排队,我还希望完成这项工作需要一段时间。

我的问题是,当我运行php artisan queue:listen时,它从队列中获取作业,开始正常处理它,但在大约20秒后,它会冻结。该作业不会启动任何异常,也不会继续,因此不会从队列中删除它。

我正在使用database驱动程序。我在这里遗漏了什么?

2 个答案:

答案 0 :(得分:1)

php artisan queue:listen不会为用户输出错误。运行php artisan queue:work,它将输出错误。此命令仅在队列中运行一个进程。因此,您需要确保下一个进程是您要调试的进程。

答案 1 :(得分:1)

也许它不会冻结,但是当您运行php artisan queue:work或php artisan queue:listen命令后,在命令行界面中什么都没看到时,它似乎冻结了。

就我而言,

//通过Coomand行界面上的队列名称执行Laravel队列->

我正在使用运行命令 php artisan队列:工作
没有在作业表中运行我排队的作业。

然后我声明,它仅适用于队列列值为='default'的作业 而且我给了类似sendemail,inboxemail等的名称。

因此,当我在作业表的队列列中将此其他值更改为“默认”时, 当我打开cli和php artisan队列时,这项工作立即运行: 命令处于活动状态。

因此,如果您只想按队列名称运行特定队列,请运行命令->

php artisan队列:收听--queue = sendemail

php artisan队列:收听--queue = inboxemail