如何从 Laravel Horizon 中的 Redis 队列重试所有失败的作业



如何在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:failedArtisan 命令:

php artisan queue:failed

queue:failed命令将列出作业 ID、连接、队列、 和故障时间。作业 ID 可用于重试失败的作业。为 实例中,要重试 ID 为 5 的失败作业,请发出 以下命令:

php artisan queue:retry 5

相关内容

  • 没有找到相关文章

最新更新