ruby-on-rails - Sidekiq 错误处理和停止工作器

标签 ruby-on-rails sidekiq

为了避免不必要的运行,我希望我的 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/

相关文章:

ruby-on-rails - Sidekiq - 无法在 5.000 秒内获得数据库连接

ruby-on-rails - 将网络爬虫移至后台 : Resque or Sidekiq

ruby-on-rails - 更好的替代默认Rails脚手架样式表: scaffold. CSS吗?

ruby - Sidekiq 作业在 Heroku 上排在队列中

ruby-on-rails - rails 5 : How to remove a column from a database?

ruby-on-rails - 是否可以将 Rails 应用程序的迁移添加到 ruby​​ gem?

ruby-on-rails - 重写设计::邮件程序不工作

ruby-on-rails - 无法在 vagrant 上运行 sidekiq

ruby-on-rails - 创建具有附加值的多维哈希

javascript - 退出确认功能并删除使用 javascript 和 jQuery 提交的功能