阅读(1760)
赞(10)
Laravel 8 通知队列化
2021-07-06 09:24:39 更新
注:使用通知队列前需要配置队列并 开启一个队列任务。
发送通知可能是耗时的,尤其是通道需要调用额外的 API 来传输通知。为了加速应用的响应时间,可以将通知推送到队列中异步发送,而要实现推送通知到队列,可以让对应通知类实现 ShouldQueue
接口并使用 Queueable
trait。如果通知类是通过 make:notification
命令生成的,那么该接口和 trait 已经默认导入,你可以快速将它们添加到通知类:
<?php
namespace AppNotifications;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateNotificationsNotification;
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));