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

Php 如何重试Laravel Horizon中Redis队列中所有失败的作业,php,laravel,laravel-5,laravel-5.8,laravel-horizon,Php,Laravel,Laravel 5,Laravel 5.8,Laravel Horizon,如何重试Laravel Horizon中所有失败的作业?似乎没有“重试所有”按钮,artisan命令不起作用,因为失败的作业未存储在表中 因为失败的作业没有存储在表中 实际上,您应该创建该表。从: 您还应创建Laravel将用于 存储任何失败的队列作业: php artisan queue:failed-table php artisan migrate 然后,致: 重试失败的作业 查看已插入到系统中的所有失败作业 failed_jobs数据库表,您可以使用队列:failedArtisan

如何重试Laravel Horizon中所有失败的作业?似乎没有“重试所有”按钮,artisan命令不起作用,因为失败的作业未存储在表中

因为失败的作业没有存储在表中

实际上,您应该创建该表。从:

您还应创建Laravel将用于 存储任何失败的队列作业:

php artisan queue:failed-table

php artisan migrate
然后,致:

重试失败的作业 查看已插入到系统中的所有失败作业
failed_jobs
数据库表,您可以使用
队列:failed
Artisan 命令:

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

php artisan queue:failed
php artisan queue:retry 5

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中保留一周).

在当前情况下,这对我没有帮助,因为我的失败队列在Redis中,而这些作业需要重试。