Laravel的队列系统通过以下方式处理和失败:
###工作重试
1。可配置的检索:如果作业因暂时错误而失败,则可以配置要重试的作业,从而增强了系统的可靠性。这是通过在作业类上设置“尝试”属性[2] [3]来完成的。
2。自动检索:Laravel提供了失败的作业自动检索。如果作业失败,将在将其标记为失败之前将其重新指定的次数[2] [3]。
3。作业重试逻辑:您可以在作业类上定义“失败”方法来处理工作失败。当作业失败并允许您执行特定工作的操作时,该方法被调用[3]。
###作业失败
1。失败的作业表:Laravel存储在“失败的_jobs”数据库表中的作业失败。该表包含有关作业ID,连接,队列和故障时间的信息[3]。
2。查看失败的作业:您可以使用“队列:失败”工匠命令查看所有失败的作业。此命令列出了作业ID,连接,队列和故障时间[3]。
3。重试失败的工作:您可以使用“队列:重试工匠命令重试失败的作业。该命令将作业ID作为参数并重新检索工作。您还可以通过使用“队列:重试” [3] [5]来重试所有失败的作业。
4。删除失败的作业:您可以使用“队列:忘记工匠命令”删除失败的作业。该命令将作业ID作为参数并删除作业。您还可以使用`Queue:flush` [3]删除所有失败的作业。
### 结论
Laravel的队列系统提供了可处理工作重试和失败的强大机制。通过配置重试,查看失败的作业,重试失败的作业以及删除失败的作业,您可以确保背景处理任务的可靠性和效率。
引用:[1] https://laracasts.com/discuss/channels/laravel/laravel-queue-queue-retry-jobs-5-times
[2] https://wpwebinfotech.com/blog/laravel-queue-system/
[3] https://laravel.com/docs/5.1/queues
[4] https://laracasts.com/discuss/channels/laravel/queue-job-job-retry-fter-after-after-x-minutes-if-failed
[5] https://stackoverflow.com/questions/30778924/laravel-4-4-retry-all-failed-jobs