同步运行Laravel工作链

我有这样的Laravel工作链

Job1::withChain([
  new Job2(),new Job3(),new Job4()
])->dispatch();

有时候我希望它同步运行作业。

但是当我将->dispatch()更改为->dispatchNow()时,我得到了

  

调用未定义的方法Illuminate \ Foundation \ Bus \ PendingChain :: dispatchNow()

还有其他同步运行工作链的方法吗?

sunyinglu 回答:同步运行Laravel工作链

您可以使用allOnConnection方法并在sync连接上运行它们:

Job1::withChain([
  new Job2(),new Job3(),new Job4()
])->dispatch()->allOnConnection('sync');

只需检查driver文件中sync连接的config/queue.php确实是'sync'

另一种方法不是理想的选择,当您想轻松地在同步运行和异步运行作业之间“切换”时,就是将它们一个接一个地分派,例如:

Job1::dispatchNow();
Job2::dispatchNow();
Job3::dispatchNow();
Job4::dispatchNow();
本文链接:https://www.f2er.com/2935821.html

大家都在问