首页 > 解决方案 > 如何使用 Sidekiq 将工作放入 Dead?

问题描述

是否有可能在发现工作中的错误时使该工作陷入困境?

就像是:

class MyJob < ApplicationJob
  queue_as :default
  sidekiq_options retry: 5

  rescue_from MyError do
    # This is where I have to put the job in dead.
  end

  def perform(document)
    ...
  end
end

标签: ruby-on-railsrubysidekiq

解决方案


根据这个问题......你不能在你的工作中动态地做到这一点。您最好的选择是将重试次数设置为零。

文档中...跳过重试,将失败的作业直接发送到死集:

class NonRetryableWorker
  include Sidekiq::Worker
  sidekiq_options retry: 0

  def perform(...)
  end
end

推荐阅读