首页 文章

Laravel:捕获异常导致Job失败

提问于
浏览
0

Laravel 5.6

我有一个使用数据库队列驱动程序运行的作业 . Job通过Facade调用自定义类的方法 .

在自定义类方法中,有很多情况下可以抛出异常 . 我发生了所有这些异常,并使用 Log:: 触发消息松弛, report($e) 使用Laravel的异常处理程序报告错误 .

问题:

如果我直接在类上运行该方法,则会处理错误并正确完成方法 .

如果我通过Job调用该方法,则第一个Exception会导致Job失败 . 这些是直接调用方法时处理完全相同的异常 .

我错过了什么?

1 回答

  • 0

    这是Laravel关于此的官方文档:

    “错误处理如果在处理作业时抛出异常,作业将自动释放回队列,以便再次尝试 . 作业将继续释放,直到尝试允许的最大次数为止最大尝试次数由队列中使用的--tries开关定义:work Artisan命令 . 或者,可以在作业类本身上定义最大尝试次数 . 有关运行队列工作程序的更多信息可以通过您的应用程序来定义 . 在下面找到 . “

    您可以使用Laravel Failed Job Events . https://laravel.com/docs/5.6/queues#failed-job-events

相关问题