Dan*_*iel 3 laravel laravel-queue laravel-5.8
我有一个像这样的 Laravel 工作链
Job1::withChain([
new Job2(),
new Job3(),
new Job4()
])->dispatch();
Run Code Online (Sandbox Code Playgroud)
有时我希望它同步运行作业。
但是当我更改->dispatch()为时->dispatchNow(),我得到
调用未定义的方法 Illuminate\Foundation\Bus\PendingChain::dispatchNow()
还有其他方法可以同步运行作业链吗?
您可以使用该allOnConnection方法并在连接上运行它们sync:
Job1::withChain([
new Job2(),
new Job3(),
new Job4()
])->dispatch()->allOnConnection('sync');
Run Code Online (Sandbox Code Playgroud)
只需检查文件中的连接driver确实是.syncconfig/queue.php'sync'
另一种选择(当您想要在同步运行作业与异步运行作业之间轻松“切换”时并不理想)是一个接一个地分派它们,例如:
Job1::dispatchNow();
Job2::dispatchNow();
Job3::dispatchNow();
Job4::dispatchNow();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3749 次 |
| 最近记录: |