【发布时间】:2016-11-14 12:35:47
【问题描述】:
所以我目前正在阅读有关邮件队列的 Laravel 文档,但我已经失去了这个想法,Mail::queue(<params>) 和 $this->dispatch(new SendMail(<params>)) 之间有什么区别。因为在 Laravel 文档的 Mail 部分中给出了第一个变体,但后来有人说“不要忘记先配置你的队列”。我去了队列配置部分,在那里我发现“添加一些东西到队列只需使用$this->dispatch($job)”。
所以,我制作了两种变体:其中一种如下所示:
Mail::queue('emails.template',
['name'=>$name, 'msg'=>$message],
function($msg) use ($email){
$msg->to($email)
->subject('Application received');
}
);
第二个,在同一个控制器中,但其他方法,只是:
$this->dispatch(new SendEmail($name, $message, $email));
在第二个变体中,我使用了作业,handle() 方法与之前的代码相同,只是使用了Mail::send。
在这两种变体中,用户必须等待同样长的时间,php artisan queue:listen 保持沉默,但电子邮件发送成功。
我应该怎么做才能澄清我的情况?非常感谢任何可能的帮助!
【问题讨论】:
-
1.如果您希望邮件由同一个工作人员发送,请使用 mail::send()。 2. 如果您有单独的邮件队列并由单独的工作人员处理,请使用 mail::queue()。
标签: php laravel email queue laravel-5.2