Sidekiq - 重新安排失败的工作

时间:2014-09-19 15:41:26

标签: redis sidekiq

我有一个后台工作,使用Sidekiq连接到我的另一个服务:

  def perform(id)
      user = ABCClient.instance.user(id)
      ...
  end

有时这个ABCClient已关闭,我想在这种情况下重新安排“执行”工作。 像这样:

  def perform(id)
      begin
          user = ABCClient.instance.user(id)
      rescue => e
          # Reschedule job
      end
      ...
  end

2 个答案:

答案 0 :(得分:5)

https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs

rescue => e self.class.perform_in(5.minutes, id) end

答案 1 :(得分:0)

在 2021 年,使用 Rails >= 6.0.1,您只需设置 sidekiq_options retry: 5 https://github.com/mperham/sidekiq/wiki/Active-Job#customizing-error-handling