Laravel 8 条件监听队列
有时,你可能需要根据某些运行时的数据(满足某些条件)对监听器进行排队, 为此,可以在侦听器中添加 shouldQueue
方法,以确定是否应该将监听器排队并同步执行,如果 shouldQueue
方法返回 false
,则不会执行监听器:
<?php
namespace App\Listeners;
use App\Events\OrderPlaced;
use Illuminate\Contracts\Queue\ShouldQueue;
class RewardGiftCard implements ShouldQueue
{
/**
* 给客户奖励礼品卡
*
* @param \App\Events\OrderPlaced $event
* @return void
*/
public function handle(OrderPlaced $event)
{
//
}
/**
* 确定监听器是否应加入队列
*
* @param \App\Events\OrderPlaced $event
* @return bool
*/
public function shouldQueue(OrderPlaced $event)
{
return $event->order->subtotal >= 5000;
}
}