为了避免不必要的运行,我希望我的Sidekiq工作人员在每个阶段检查一定的条件。如果不满足该条件,则Sidekiq应停止并报告错误。
目前我有:
class BotWorker
include Sidekiq::Worker
def perform(id)
user = User.find(id)
if user.nil?
# report the error? Thinking of using UserMailer
return false # stop the worker
end
# other processing here
end
这似乎是一种处理Sidekiq错误的天真方式。如果工作人员出现故障,应用程序需要立即通知管理员。
我错过了什么吗?什么是处理Sidekiq错误的更好方法?
答案 0 :(得分:3)
您可以创建自己的错误处理程序
Sidekiq.configure_server do |config|
config.error_handlers << Proc.new {|exception,context_hash| MyErrorService.notify(exception,context_hash) }
end