小编Duc*_*her的帖子

什么会阻止队列中的作业处理?[PHP/Laravel 5]

我在Laravel 5中设置了一个队列来删除公司和相关记录.每次发生这种情况时,后端都会发生很多工作,所以队列是我最好的选择.

我将config/queue.php文件与我的文件一起设置,.env以便使用database驱动程序.我正在使用该Queue::pushOn方法将作业推送到一个名为的队列company_deletions.防爆.

Queue::pushOn('company_deletions', new CompanyDelete($id));
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

有时在查看上述命令的输出时,我收到以下错误:

[InvalidArgumentException]  
No connector for []  
Run Code Online (Sandbox Code Playgroud)

即使我没有收到错误,我也无法通过某种原因实际处理这些工作.当我查看我的jobs表时,我可以看到队列中的作业,但是attempts列显示0,reserved显示0并且reserved_at为空.我错过了一些步骤吗?我已经多次查看了文档,并且不能为我的生活弄清楚出了什么问题.我也没有在laravel错误日志中看到任何内容.什么会阻止这些作业进入jobs数据库后进行处理?任何帮助表示赞赏.

php database queue laravel-5

8
推荐指数
1
解决办法
1634
查看次数

Laravel是否支持队列工作者的超时选项?

我知道Laravel可以--timeout选择他们的php artisan queue:listen命令,但是我想用它queue:work来节省一些CPU使用率.据我所知,没有办法用队列工作器设置超时选项.如果我的工作超过60秒默认值,或者超时是否适用于超时,它会超时queue:listen吗?

我只是想确保我的工作有足够的时间来运行,因为我正在做的事情就像在后台运行报告一样,并且由于数据集的大小,有些时间超过60秒.看起来他们运行正常,我只想澄清它是如何工作的,以便我可以确保我不会遇到问题.

php queue frameworks laravel laravel-5

7
推荐指数
1
解决办法
714
查看次数

标签 统计

laravel-5 ×2

php ×2

queue ×2

database ×1

frameworks ×1

laravel ×1