手动使Sidekiq作业失败

时间:2018-12-03 03:32:32

标签: ruby-on-rails sidekiq

我正在工作人员内部呼叫interactor,并且如果交互器失败,我希望Sidekiq作业失败。

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

    # catch and respond to result.failure?
  end

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

1 个答案:

答案 0 :(得分:1)

我以前没有使用过交互器gem,但是根据您的问题,这应该可以:

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

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