0
使用Laravel 5.1的队列,我在作业失败时抛出异常。在Laravel 5.1中将异常消息传递给队列::失败()?
throw new \Exception('No luck');
由于Laravel建议时dealing with failed jobs,我在AppServiceProvider
“恶补”的例外,并用它来发送我们的团队的电子邮件。
public function boot()
{
Queue::failing(function ($connection, $job, $data) {
$info['data'] = $data;
\Mail::send('emails.jobs.failed', $info, function($message) {
$message->to('[email protected]')->subject('Job failed');
});
});
}
在电子邮件中,我想发出异常的消息(在这种情况下“没有运气”。)。但我无法弄清楚如何将它传递给Queue :: failing()。
任何想法?
谢谢约瑟夫。我真的想弄清楚为什么让我们的团队知道为什么一个工作失败了。目前,只有被告知某项工作失败,没有详细说明原因。有没有更好的方法来做到这一点? –
@MartyThomas - 我不确定你在问什么。就像我在答案中所说的那样,您可以捕获异常并在那里发送电子邮件。 –
@MartyThomas - 你遇到这个问题的原因是因为失败并不意味着以你的方式使用。队列作业不应该使用异常来控制应用程序流。如果因为任何原因你不能执行这项工作,你应该在工作的处理者内部处理这个问题。 “失败”回调意味着意外的失败(异常仍会记录到主应用程序日志文件中)。 –