Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-重试所有失败的作业_Php_Laravel_Queue - Fatal编程技术网

Php Laravel 4-重试所有失败的作业

Php Laravel 4-重试所有失败的作业,php,laravel,queue,Php,Laravel,Queue,在laravel 4.2文档中,如果我想从失败的作业表中重试失败的作业,我应该执行以下操作: php artisan queue:retry 5 其中5是作业id 如何一次重试所有失败的作业?我找不到答案(我认为laravel在默认情况下不提供此选项),因此我编写了一个bash脚本来重试我需要的所有作业: #!/bin/bash for i in {53..800} do php artisan queue:retry $i done 说: 要重试所有失败的作业,请使用队列:重试,ID

在laravel 4.2文档中,如果我想从失败的作业表中重试失败的作业,我应该执行以下操作:

php artisan queue:retry 5
其中5是作业id


如何一次重试所有失败的作业?

我找不到答案(我认为laravel在默认情况下不提供此选项),因此我编写了一个bash脚本来重试我需要的所有作业:

#!/bin/bash
for i in {53..800}
do
   php artisan queue:retry $i
done
说:

要重试所有失败的作业,请使用队列:重试,ID为all:

php artisan队列:全部重试

然而,这对我不起作用。我得到“没有与给定ID匹配的失败作业”。 我所做的是运行一个命令,允许我执行php:

php artisan tinker
并写道:

for ($i = 100; $i <= 150; $i ++) Artisan::call('queue:retry', ['id' => $i]);
用于($i=100;$i$i]);
这里100和150是失败作业ID的范围。我过去常常从数据库中动态检索它们,但如果您使用另一个队列驱动程序,这将不起作用


它在指定的范围内循环通过ID,并为每个ID调用“php artisan队列:重试XXX”命令。

我创建了一个命令来执行此操作:

您可以通过运行以下命令重试所有失败的作业:
php artisan queue:retry all


这是官方文件:

通过artisan实现这一点的一种方法是指定一个范围。即使不是该范围内的每个ID都存在,artisan仍将触发所有失败的作业,跳过它找不到的作业。例如,如果在IDs 200和510之间有一组稀疏填充的作业,则可以执行以下操作:

php artisan queue:retry  --range 200-510

php-artisan-queue:retry all
将再次推送到作业表,因此需要再次运行
php-artisan-queue:work
。问题是针对Laravel 4,但答案是肯定的。这是正确的答案。