在laravel中发送带有队列作业的电子邮件时,它会创建两个进程,为什么?是否有办法修复并只保留一个?是否有任何函数可以做到这一点?对于每个调度,一个进程。
控制器
public function sendMail()
{
$email = "gustavo.gomes@teste.com.br";
SendMail::dispatch($email);
return view('site.email-enviado');
}
工作
public function handle()
{
Mail::to('teste@test.com')->queue(new MensagemTesteMail($this->email));
}
电子邮件
public function build()
{
return $this->subject('gustavocamalionti@gmail.com')
->from(env("MAIL_FROM_ADDRESS", null), 'Teste email')
->view('emails.cadastro-sucesso');
}
php artisan queue:work
1条答案
按热度按时间lf5gs5x21#
您没有执行2个进程(作业工人)...您只有一个...
1.第一个命令实际上表示它正在处理您发送到队列的作业(
SendMail
1.第二行表示
SendMail
作业已处理1.第三个是字面上说,它正在处理一个作业(
MensagemTesteMail
)(我建议很多只用英语编码)1.第四个示例说明
MensagemTesteMail
作业已处理您有2个作业,因为第一个作业(
SendMail
)正在执行Mail::to('teste@test.com')->queue(new MensagemTesteMail($this->email));
,这实际上创建了邮件(MensagemTesteMail
)。它是一个作业,因为您有这样的作业...您实际上有->queue(new MensagemTesteMail($this->email))
,所以这是第二个作业...