为了避免不必要的运行,我希望我的 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 中处理错误的更好方法是什么?
最佳答案
您可以创建自己的错误处理程序
Sidekiq.configure_server do |config|
config.error_handlers << Proc.new {|exception,context_hash| MyErrorService.notify(exception,context_hash) }
end
关于ruby-on-rails - Sidekiq 错误处理和停止工作器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20896074/