如何在Laravel Horizon中重试所有所有失败的作业?似乎没有“全部重试”按钮,并且工匠命令不起作用,因为失败的作业没有存储在表中。
答案 0 :(得分:1)
因为失败的作业没有存储在表中
实际上,您应该创建该表。来自Laravel Horizon documentation:
您还应该创建
failed_jobs
表,Laravel将使用该表 存储任何失败的队列作业:php artisan queue:failed-table php artisan migrate
然后,转到retry failed jobs:
重试失败的作业
要查看已插入到您的所有失败作业中
failed_jobs
数据库表,您可以使用queue:failed
Artisan 命令:php artisan queue:failed
queue:failed
命令将列出作业ID,连接,队列, 和故障时间。作业ID可用于重试失败的作业。对于 例如,要重试ID为5的失败作业,请发出 以下命令:php artisan queue:retry 5
答案 1 :(得分:1)
queue:retry
命令接受all
代替单个作业ID:
php artisan queue:retry all
这会将所有失败的作业推回到您的Redis队列中以重试:
The failed job [44] has been pushed back onto the queue!
The failed job [43] has been pushed back onto the queue!
...
如果您没有根据安装指南创建失败的日志表,则使用以下命令:
php artisan queue:failed-table
php artisan migrate
那么您可能会小溪了。也许尝试手动与redis进行交互,并尝试直接访问失败的作业列表(假设失败的作业条目尚未擦除-根据{{1}中的配置设置,它们似乎默认保留在redis中一周) }。