手动使 Sidekiq 作业失败

Manually fail a Sidekiq job

我在工作人员内部调用 interactor,我希望 Sidekiq 作业在交互器失败时失败。

def perform(id)
    result = RandomInteractor.call(id: id)

    # catch and respond to result.failure?
  end

现在,这会将作业显示为 已完成 而不是 失败

我之前没有使用过交互器 gem 但根据你的问题,这应该有效:

def perform(id)
    result = RandomInteractor.call(id: id)
    raise StandardError if result.failure?
end

由于您已设置为不重试失败的作业,因此一旦引发异常,应立即将其标记为“失败”。