我在Laravel 5中设置了一个队列,用于删除公司和相关记录。每次发生这种情况时,后端都会进行很多工作,因此队列是我的最佳选择。
我同时设置了config/queue.php
文件和.env
文件,以便使用database
驱动程序。我正在使用Queue::pushOn
方法将作业推送到名为company_deletions
的队列中。前任。
Queue::pushOn('company_deletions', new CompanyDelete($id));
其中
CompanyDelete
是使用php artisan command:make CompanyDelete --queued
创建的命令我试图使用以下命令来处理我的队列:
php artisan queue:work
php artisan queue:work company_deletions
php artisan queue:listen
php artisan queue:listen company_deletions
php artisan queue:work database
php artisan queue:listen database
有时在查看以上命令的输出时,会出现以下错误:
[InvalidArgumentException]
No connector for []
即使当我没有收到错误时,由于某种原因,我也无法使它实际处理作业。当我查看
jobs
表时,可以看到队列中的作业,但是attempts
列显示为0,reserved
显示为0,而reserved_at
为空。我是否缺少一些步骤?我已经看了几次文档了,无法一生找出错误所在。我也没有在laravel错误日志中看到任何东西。一旦将这些作业放入jobs
数据库,将导致什么原因导致这些作业无法得到处理?任何帮助表示赞赏。 最佳答案
我遇到了一个小问题,因为我没有将作业添加到默认队列中。
$job = (new EmailJob(
$this->a,
$this->b,
$this->c,
$this->d,
$e
))->onQueue('emails');
然后我必须听特定的队列:
php artisan queue:listen --queue=emails
在你的情况下
php artisan queue:listen --queue=company_deletions
关于php - 什么会阻止队列中的作业进行处理? [PHP/Laravel 5],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34184043/