Ruby on rails 3 Airbrake未捕获Rails应用程序中除开发环境外的Sidekiq错误
我正在Rails应用程序中使用Sidekiq和Airbrake。我想Airbrake捕捉在Sidekiq作业期间发生的任何错误。根据我在网上找到的说明,我在sidekiq.rb中添加了以下内容:Ruby on rails 3 Airbrake未捕获Rails应用程序中除开发环境外的Sidekiq错误,ruby-on-rails-3,sidekiq,rubber,airbrake,Ruby On Rails 3,Sidekiq,Rubber,Airbrake,我正在Rails应用程序中使用Sidekiq和Airbrake。我想Airbrake捕捉在Sidekiq作业期间发生的任何错误。根据我在网上找到的说明,我在sidekiq.rb中添加了以下内容: config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) } require 'sidekiq' require 'sidekiq-status'
config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) }
require 'sidekiq'
require 'sidekiq-status'
redis_connection = "redis://127.0.0.1:6379/0"
Sidekiq.configure_server do |config|
config.redis = { :url => redis_connection, :namespace => 'sidekiq' }
config.server_middleware do |chain|
chain.add Sidekiq::Status::ServerMiddleware, expiration: 30.minutes
end
config.client_middleware do |chain|
chain.add Sidekiq::Status::ClientMiddleware
end
config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) }
end
Sidekiq.configure_client do |config|
config.redis = { :url => redis_connection, :namespace => 'sidekiq' }
config.client_middleware do |chain|
chain.add Sidekiq::Status::ClientMiddleware
end
end
事实证明,如果你的应用程序也在使用rubber,那么你还必须更改你的rubber sidekiq初始值设定项(config/ruber/common/initializers/sidekiq),以包含以下行:
config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) }
config.error\u处理程序您可能应该向我们展示完整的Airbrake(减去专用令牌)和Sidekiq初始化器。
config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) }