laravel - 为什么在 laravel 中发送邮件时队列仍在等待?
问题描述
我想在队列中发送邮件并且在发送邮件时没有等待 https://laravel.com/docs/5.7/queues#connections-vs-queues
我运行命令来创建表jobs
:
php artisan queue:table
php artisan migrate
我创建了一个发送邮件的工作:php artisan make:job SendEmailJob
并编辑代码:
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public $body;
public $emailto;
public function __construct($body,$email)
{
//
$this->body=$body;
$this->emailto=$email;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email=$this->emailto;
Mail::send("body_email.confirm_order",['Body'=> $this->body], function($message) use ($email)
{
$message->from(env('MAIL_USERNAME'),"Eye glasses");
$message->subject("Confirm Email");
$message->to($email);
});
}
}
我从控制器调用队列:
use App\Jobs\SendEmailJob;
public function index()
{
$Body="test";
$email="daitb@vnitsolutions.com";
SendEmailJob::dispatch($Body, $email);
$calendars= AppointmentModel::GetAppointmentofDoctor($id,$datetime);
return view('frontend.appointment',["calendars"=>$calendars]);
}
添加QUEUE_DRIVER=database
到文件.env
运行命令:
php artisan queue:work
如果我运行控制器,进程仍在等待发送邮件完成并运行其他进程。我尝试更改为:
SendEmailJob::dispatch($Body, $email)->delay(now()->addMinutes(3));
没有延迟,5s后仍然发送邮件。
为什么在 laravel 中发送邮件时队列仍在等待?我用的是win 32。
解决方案
我的问题通过更改为 QUEUE_CONNECTION=sync
文件解决QUEUE_CONNECTION=database
.env
推荐阅读
- python - 需要 PySimpleGUIQt 下载进度条
- javascript - 相邻的 JSX 元素必须包含在封闭标记中 - JSX 标记已被包装但一直忽略错误
- android - 在android中点击每个视图时振动
- javascript - 第 55:11 行:期望一个赋值或函数调用,而是看到一个表达式 no-unused-expressions
- spring-boot - 无法在我的应用程序中使用 ai.djl.modality.cv.util.BufferedImageUtils
- python - 在 python 机器学习模型中,对最近数据的权重比对旧数据的权重更大
- r - 如何使用 R 根据长格式数据的列中第一个零的位置创建新的分类变量?
- python-3.x - Python,替换字符串中所有出现的模式
- random - 有人在“RayTracing in one Weekend”中遇到过这个剥离神器吗?
- javascript - map 不是在三元运算符中返回 div 的函数