我使用Laravel 5.7和3个队列的作业,作业之间的时间太长/太慢。
我在第一份工作中列出了RSS提要的每个项目,在第二份工作中分发了这个项目,以此类推...我没有输入详细信息,但是有些荒谬的小计算不能花时间。
问题在于每次派遣工作都需要大量时间。 Horizon和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尝试了太多次 或运行时间太长。该作业可能先前已超时。
答案 0 :(得分:0)
我遇到了同样的问题,进行了很多搜索,但没有任何帮助,即使horizon Github中的此bug也存在一些问题,但没有有效的解决方案。问题在于地平线和Redis的繁琐任务。
最后,我从Redis和Horizon切换到SQL数据库(无论您在项目中使用的是我的mssql)作为队列连接,它都解决了问题
注意:在工匠命令中使用--timeout=0
答案 1 :(得分:0)
默认情况下,当没有可用作业时,laravel队列休眠3秒。
您应该使用--sleep=0
选项