【问题标题】:Sidekiq - Reschedule failed jobSidekiq - 重新安排失败的工作
【发布时间】:2021-04-22 17:09:49
【问题描述】:

我有一个后台作业,使用 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

【问题讨论】:

    标签: redis sidekiq


    【解决方案1】:

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

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

    【讨论】:

    • 我有以下错误“未定义的方法 `minutes' for 5:Fixnum” - 你确定可以这样做吗?
    • 那是 Railsism。需要主动支持。
    【解决方案2】:

    在 2021 年,使用 Rails >= 6.0.1 你可以简单地设置sidekiq_options retry: 5 https://github.com/mperham/sidekiq/wiki/Active-Job#customizing-error-handling

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 2018-04-15
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多