小编Ter*_*y D的帖子

Laravel 队列在队列为空时进入睡眠状态

我有一个控制器函数,它调度一个job. 处理此job问题后,最后它会job再次分派相同的内容(使用不同的参数)。总共有5个相同的职位。

Queue driver: database

问题是:我记录了从create()到 的持续时间handle()。由控制器调度的第一个作业花费了 1700 毫秒,而由作业本身调度的其他作业仅花费了 40 毫秒。

Queue driver: sync

当我改用sync队列驱动程序时,所有工作都以闪电般的速度进行。

发现:

create()第一个队列作业从到花费了很长时间handle()。在此之前,队列是空的。可能是队列驱动程序的问题。

请问为什么以及如何解决?谢谢!!

更新:

TestJob在处理作业时添加了一个调度本身。这意味着队列总是有一个TestJob正在处理或等待处理。

重复我原来的工作,它们从完成created()到完成只用了不到 70 毫秒的时间handle()

结论:

我很确定这是队列驱动程序问题。看起来工作人员在队列为空时就睡着了。请问有人知道修复方法吗?

queue performance jobs laravel

0
推荐指数
1
解决办法
3019
查看次数

标签 统计

jobs ×1

laravel ×1

performance ×1

queue ×1