Laravel 在队列和非队列之间切换

Laravel switch between Queue and not Queue

如何在 class 中切换 ShouldQueue 和 Sync?

我们有一个端点接受参数是立即还是稍后解雇作业。

在这两种情况下,应该执行相同的逻辑,但在一种情况下,我期望并回复,而另一种情况应该异步处理。

我知道实施 "ShouldQueue" 并使用 "InteractsWithQueue"-Trait 但我们如何才能在一种情况下使用它而在另一种情况下不使用它呢?

您能否以编程方式设置请求是否应排队,或者是否有更好的方法来执行此操作?谢谢

在您的控制器中:

$this->dispatch($job) // queued if implements ShouldQueue

$this->dispatchNow($job) // never queues

如果卡在 Laravel 5.1,请自己创建 Dispatcher 的新实例:

use Illuminate\Contracts\Bus\Dispatcher;

// Later ...

app(Dispatcher::class)->dispatchNow($job);