Laravel 5.7-队列作业太慢

时间:2019-01-02 14:50:25

标签: php laravel redis queue supervisord

我使用Laravel 5.7和3个队列的作业,作业之间的时间太长/太慢。

我在第一份工作中列出了RSS提要的每个项目,在第二份工作中分发了这个项目,以此类推...我没有输入详细信息,但是有些荒谬的小计算不能花时间。

问题在于每次派遣工作都需要大量时间。 Horizo​​n和Telescope不允许我调试。

我使用的计算机具有32 GB的RAM,并且有多个进程(每个进程有15个)将其拖尾。

[program:mywebsite_feeder]
command=/RunCloud/Packages/php72rc/bin/php artisan queue:work redis --queue=feeder --tries=3 --sleep=0
directory=/home/runcloud/webapps/mywebsite
redirect_stderr=true
autostart=true
autorestart=true
user=runcloud
numprocs=15
process_name=%(program_name)s_%(process_num)s

laravel.log中出现此错误:

  

production.ERROR:App \ Jobs \ FeederJob尝试了太多次   或运行时间太长。该作业可能先前已超时。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,进行了很多搜索,但没有任何帮助,即使horizon Github中的此bug也存在一些问题,但没有有效的解决方案。问题在于地平线和Redis的繁琐任务。

最后,我从Redis和Horizo​​n切换到SQL数据库(无论您在项目中使用的是我的mssql)作为队列连接,它都解决了问题

注意:在工匠命令中使用--timeout=0

答案 1 :(得分:0)

默认情况下,当没有可用作业时,laravel队列休眠3秒。 您应该使用--sleep=0选项