Laravel 5.7 - 队列作业太慢

pir*_*max 5 php queue redis supervisord laravel

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

我在第一份工作中 foreach RSS 提要项目,然后在第二份工作中调度该项目,等等...我没有输入详细信息,但有一些可笑的小计算,一定不需要花时间。

问题是每次派遣工作都需要花费大量时间。地平线和望远镜不允许我调试。

我使用的机器有 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
Run Code Online (Sandbox Code Playgroud)

我在 laravel.log 中遇到此错误:

Production.ERROR:App\Jobs\FeederJob 尝试次数过多或运行时间过长。该作业之前可能已超时。

Mil*_*uri 0

我遇到了同样的问题,做了很多搜索,但没有任何帮助,即使在Horizo​​n Github上有一些关于这个错误的问题,但没有有用的解决方案。问题在于 Horizo​​n 和 Redis 对于繁重任务的错误。

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

注意:--timeout=0在你的 artisan 命令中使用