Laravel 8 事件监听器队列
如果你的监听器中要执行诸如发送电子邮件或发出 HTTP 请求之类的耗时任务,你可以将任务丢给队列处理。在开始使用队列监听器之前,请确保在你的服务器或者本地开发环境中能够 配置队列 并启动一个队列监听器。
要指定监听器启动队列,你可以在监听器类中实现 ShouldQueue
接口。由 Artisan 命令 event:generate
生成的监听器已经将此接口导入到当前命名空间中,因此你可以直接使用:
<?php
namespace App\Listeners;
use App\Events\OrderShipped;
use Illuminate\Contracts\Queue\ShouldQueue;
class SendShipmentNotification implements ShouldQueue
{
//
}
就是这样!现在,当这个监听器被事件调用时,事件调度器会自动使用 Laravel 的队列系统 自动排队。如果在队列中执行监听器时没有抛出异常,任务会在执行完成后自动从队列中删除。