如何在Laravel Horizon中重试所有失败的作业?似乎没有"全部重试"按钮,并且工匠命令不起作用,因为失败的作业未存储在表中。
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 交互并尝试直接访问失败作业列表(假设失败的作业条目尚未擦除 - 根据config/horizon.php
中的配置设置,看起来它们默认在 redis 中保留一周(。
因为失败的作业不会存储在表中
实际上,您应该创建该表。来自Laravel Horizon文档:
您还应该创建 Laravel 将用于的
failed_jobs
表 存储任何失败的队列作业:php artisan queue:failed-table php artisan migrate
然后,重试失败的作业:
重试失败的作业
查看已插入到您的
failed_jobs
数据库表中,您可以使用queue:failed
Artisan 命令:php artisan queue:failed
queue:failed
命令将列出作业 ID、连接、队列、 和故障时间。作业 ID 可用于重试失败的作业。为 实例中,要重试 ID 为 5 的失败作业,请发出 以下命令:php artisan queue:retry 5