Laravel提供了开箱即用的,队列允许您延迟处理耗时的任务,例如发送电子邮件,直到稍后的时间。推迟这些耗时的任务会大大加速您的应用程序的Web请求。
一、生成队列表
php artisan queue:tablephp artisan migrate
二、生成Job类
这里我们给发送邮件操作添加队列操作
php artisan make:job SendReminderEmail
SendReminderEmail.php
user = $user; } /** * Execute the job. * * @return void */ public function handle() { // 打印调试 \Log::info('send remind email to' . $this->user->email); }}
我们以 User Model为例,先在构造器方法中注入User 类,然后在UsersController.php 中使用dispatch 加入到队列中,dispatch(new SendReminderEmail($user));
添加到队列后,我们需要在handle()
方法中处理具体的业务逻辑,如给具体的用户对象发送邮件,最后执行队列命令,即可发送邮件。
php artisan queue:work