我知道,问题很奇怪......
场景:我有一个发送电子邮件的Job类,但修改了此电子邮件的内容,因为在发送之前选择了电子邮件的模板。
我不知道这是不是真的,但显然Laravel保留了他第一次解雇的内容缓存。即使通过更改属性的值,Job也会发送完全相同的电子邮件。
如果这是真的,我想知道如何使用相同的工作类发送不同的电子邮件或什么是最好的选择。
\程序\作业\ SenderEmail001.php
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($template_id, $subject)
{
$this->template_id = $template_id;
$this->subject = $subject;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$template = Template::findOrFail($this->template_id);
\Mail::send([], [], function($message) use ($template)
{
$message
->replyTo('[email protected]', 'Email Source')
->from('[email protected]', 'Email Source')
->to('[email protected]', 'Email Target')
->subject($this->subject)
->setBody($template->markup, 'text/html');
});
}
myController的
\App\Jobs\SenderEmail001::dispatch(6, 'subject subject subject')
->delay(now()->addSecond(100))
->onQueue('default');
由于队列工作程序是长期存在的进程,因此无需重新启动就无法识别代码更改。要在部署期间正常重新启动工作程序...运行。
php artisan queue:restart
看到更多:https://laravel.com/docs/5.7/queues#queue-workers-and-deployment