我曾尝试在每次用户注册时使用队列,并向他们发送电子邮件进行验证。
我正在使用Laravel 5.1成功地完成它 我只是徘徊,如果我收到错误,我怎么能停止当前队列,然后当我修复它时,我从最后一个队列重新启动作业?
这样的错误怎么样:
[InvalidArgumentException]
View [emails.versify_email] not found.
[InvalidArgumentException]
View [emails.versify_email] not found.
[InvalidArgumentException]
View [emails.versify_email] not found.
我在宅基地尝试使用:
public function failed(){
//I've tried send email but it not sending
}
或在AppServiceProvider
Queue::failing(function ($connection, $job, $data) {
$user ='mymail@gmail.com';
Mail::send('emails.fail_queue', ['user' => $user], function ($m) use ($user) {
$m->subject('Failing:' . $user)
->to($user);
});
});
他们都没有工作。 如果在生产时发生这种情况,我该怎么办?
答案 0 :(得分:1)
当处理程序抛出异常时,Laravel会尝试将作业释放回队列,除非明确删除它。
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Queue/Worker.php#L198-L227
您可以使用$ delay参数将延迟放回队列。或者,如果能够发现问题,最好自己埋葬工作。
$this->job->bury()