在 laravel 4.2 文档中,据说如果我想从失败的作业表中重试失败的作业,我应该这样做:
php artisan queue:retry 5
Run Code Online (Sandbox Code Playgroud)
其中 5 是作业 ID。
如何一次重试所有失败的作业?
Ria*_*jul 12
您可以通过运行重新尝试都失败了乔布斯:php artisan queue:retry all。
这是官方文档:https : //laravel.com/docs/7.x/queues#retrying-failed-jobs
要重试所有失败的作业,请使用 queue:retry 和 all 作为 ID:
php工匠队列:重试所有
然而这对我不起作用。我收到“没有与给定 ID 匹配的失败作业。”。我所做的是我运行了一个命令,允许我执行 php:
php artisan tinker
Run Code Online (Sandbox Code Playgroud)
并写道:
for ($i = 100; $i <= 150; $i ++) Artisan::call('queue:retry', ['id' => $i]);
Run Code Online (Sandbox Code Playgroud)
这里 100 和 150 是您失败的作业 ID 范围。我曾经动态地从数据库中检索它们,但是如果您使用另一个队列驱动程序,这将不起作用。
它的作用是遍历您指定范围内的 ID,并为每个 ID 调用“php artisan queue:retry XXX”命令。
我找不到这个问题的答案(我不认为 laravel 默认提供这个)所以我写了一个 bash 脚本来重试我需要的所有工作:
#!/bin/bash
for i in {53..800}
do
php artisan queue:retry $i
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10632 次 |
| 最近记录: |