Laravel 8 通知队列化

2021-07-15 15:57 更新

注:使用通知队列前需要配置队列并 开启一个队列任务

发送通知可能是耗时的,尤其是通道需要调用额外的 API 来传输通知。为了加速应用的响应时间,可以将通知推送到队列中异步发送,而要实现推送通知到队列,可以让对应通知类实现 ShouldQueue 接口并使用 Queueable trait。如果通知类是通过 make:notification 命令生成的,那么该接口和 trait 已经默认导入,你可以快速将它们添加到通知类:

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;

class InvoicePaid extends Notification implements ShouldQueue
{
    use Queueable;

    // ...
} 

ShouldQueue 接口被添加到通知类以后,你可以像之前一样正常发送通知,Laravel 检测到 ShouldQueue 接口后会自动将通知的发送添加到队列:

$user->notify(new InvoicePaid($invoice)); 

如果你想要延迟通知的发送,可以在通知实例后加上 delay 方法:

$when = now()->addMinutes(10);

$user->notify((new InvoicePaid($invoice))->delay($when)); 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号