事件处理队列

最后更新于:2022-04-01 15:07:59

需要把事件处理程序放到 队列 吗?这不能变得再更简单了。当你产生处理程序,简单地使用 --queued 旗标: `php artisan handler:event SendPurchaseConfirmation --event=PodcastWasPurchased --queued` 这将会产生一个实现了 Illuminate\Contracts\Queue\ShouldBeQueued 接口的处理程序类。这样就可以了!现在当这个处理程序因为事件发生被调用,它将会被事件配送器自动地排进队列。 当处理程序被队列执行,如果没有异常被丢出,在执行后该队列中的任务将会自动被删除。你也可以手动取用队列中的任务的 delete 和 release 方法。队列处理程序默认会引入的 Illuminate\Queue\InteractsWithQueue trait,让你可以取用这些方法: ~~~ public function handle(PodcastWasPurchased $event) { if (true) { $this->release(30); } } ~~~ 如果你想要把一个已存在的处理程序转换成一个队列的处理程序,简单地手动添加 ShouldBeQueued 接口到类。
';