事件处理队列
2018-02-24 15:52 更新
需要把事件处理程序放到 队列 吗?这不能变得再更简单了。当你产生处理程序,简单地使用 --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 接口到类。
以上内容是否对您有帮助:
← 基本用法
更多建议: