阅读(2455) (6)

Laravel 8 响应发送到浏览器后的调度

2021-07-06 09:24:59 更新

另外, dispatchAfterResponse 方法会延迟发送任务,直到将响应发送到用户的浏览器之后。这仍然允许用户开始使用应用程序,即使队列任务仍然在执行。这通常只适用于需要 1 秒钟的任务,比如发送电子邮件:

use App\Jobs\SendNotification;

SendNotification::dispatchAfterResponse(); 

你可以 dispatch 一个闭包,并将 afterResponse 方法链到帮助程序上,在响应发送到浏览器后执行闭包:

use App\Mail\WelcomeMessage;
use Illuminate\Support\Facades\Mail;

dispatch(function () {
    Mail::to('taylor@laravel.com')->send(new WelcomeMessage);
})->afterResponse();