如何在不引发异常的情况下重试sidekiq工作?

问题描述 投票:0回答:1

简单的东西,我需要有一种方法来重试工作而不提高异常。我知道我可以用类似的东西

def perform
    if stuff_happening
        perform_in(2.min)
        return
    end
end

它很好,但有一个问题:重试计数。可能,每次有stuff_happening,这个工作将无限期地保持计划?有没有办法确保它只安排固定次数然后停止?

ruby sidekiq
1个回答
0
投票

旁注:我们在Ruby中使用2个空格进行缩进。

您需要通过以下状态(已经发生的重试次数):

def perform(attempts_left = 10)
  if stuff_happening && attempts_left > 0
    perform_in(2.min, attempts_left - 1)
    return
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.