【问题标题】:What are the settings to execute job only once in Laravel Horizon?在 Laravel Horizo​​n 中只执行一次作业的设置是什么?
【发布时间】:2018-05-30 10:20:01
【问题描述】:

我对如何只运行一次作业有点困惑,因为当我将参数“tries”设置为 1 并且作业失败时,它会再执行一次。如果我将尝试参数设置为 3,则作业运行 4 次。最后,如果我设置为 0,作业将无限期运行。在 config/horizo​​n.php 中我的设置​​下方:

'production' =
    'default' => [
            'connection'   => 'redis',
            'queue'        => [
                'default',
                'notifications',
                'dom'
            ],
            'balance'      => 'auto',
            'maxProcesses' => env('MAX_PROCESSES', 45),
            'timeout'      => 60,
            'tries'        => 1,
        ],
    ],

在我的 config/queue.php 设置下方

'redis' => [
        'driver'      => 'redis',
        'connection'  => 'default',
        'queue'       => 'default',
        'retry_after' => 90,
    ],

还有其他问题,“已尝试多次或运行过多”是什么设置调度?

【问题讨论】:

  • 作业是失败还是超时?
  • 重复作业的问题只有当作业失败时。关于“已尝试多次”的另一个问题是好奇。
  • 有什么想法可以帮助我解决这个问题@mtinsley?

标签: php laravel redis queue laravel-horizon


【解决方案1】:

只需为 Job 设置一个属性$tries = 1,并在发现可能的错误时,调用$this->fail()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    相关资源
    最近更新 更多