【发布时间】:2021-12-17 14:51:31
【问题描述】:
是否有可能在捕获作业中的错误时使该作业陷入死机?
类似:
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
【问题讨论】:
-
如果您的意图只是阻止作业重试......为什么不直接返回 true 并允许将其标记为完成?
-
@Jon 对于这些错误,我需要将作业置于死状态,以便可以在那里对其进行跟踪。我还需要通知支持人员所有已死亡的工作。
-
那么我建议使用 sentry.io 之类的东西来执行此操作,而不是手动监视死队列。您可以配置
death_handlers为您处理此问题。
标签: ruby-on-rails ruby sidekiq