我有一个控制器函数,它调度一个job
. 处理此job
问题后,最后它会job
再次分派相同的内容(使用不同的参数)。总共有5个相同的职位。
Queue driver: database
问题是:我记录了从create()
到 的持续时间handle()
。由控制器调度的第一个作业花费了 1700 毫秒,而由作业本身调度的其他作业仅花费了 40 毫秒。
Queue driver: sync
当我改用sync
队列驱动程序时,所有工作都以闪电般的速度进行。
发现:
create()
第一个队列作业从到花费了很长时间handle()
。在此之前,队列是空的。可能是队列驱动程序的问题。
请问为什么以及如何解决?谢谢!!
更新:
TestJob
在处理作业时添加了一个调度本身。这意味着队列总是有一个TestJob
正在处理或等待处理。
重复我原来的工作,它们从完成created()
到完成只用了不到 70 毫秒的时间handle()
。
结论:
我很确定这是队列驱动程序问题。看起来工作人员在队列为空时就睡着了。请问有人知道修复方法吗?