Laravel Horizo​​n-作业模型中的设置(例如“ retryAfter”,“ tries”或“ timeout”)不起作用

时间:2019-06-06 20:22:17

标签: php laravel horizon laravel-horizon

我正在运行Laravel Horizo​​n,但是我注意到Job模型中的设置,例如public $retryAfterpublic $triespublic $timeout不起作用(Laravel doc:https://laravel.com/docs/5.8/queues#dealing-with-failed-jobs

例如,要重试失败的作业4次,请执行以下操作:

public $retryAfter = 4;

不起作用,但是可以在'tries' => 4配置文件中设置horizon.php

        'local' => [
            'supervisor-1' => [
                'connection' => 'redis',
                'queue' => ['default'],
                'balance' => 'simple',
                'processes' => 3,
                'tries' => 4,
            ],
        ],

为什么这些每个作业的设置不适用于Horizo​​n并且不覆盖常规设置?

谢谢。

2 个答案:

答案 0 :(得分:0)

public $tries肯定可以工作。我在我的项目中有它。

public $retryAfter值是重试作业之前要等待的秒数。这并不意味着重试作业的次数

public $timeout值表示继续尝试该工作,直到某个时间点过去(例如,未来5分钟)

您可以通过设置public $tries = 1进行检查,同时在horizo​​n.php中使用tries => 4。请记住杀死php artisan horizon:terminate的地平线过程,并​​以php artisan horizon重新开始

答案 1 :(得分:0)

好吧,以为我发现了问题...我使用的Laravel-Horizo​​n 5.7没有实现$retryAfter变量。