Я использую Sidekiq и Airbrake в своем приложении Rails. Я хотел бы, чтобы Airbrake перехватывал любые ошибки, возникающие во время заданий Sidekiq. Согласно инструкциям, которые я нашел в Интернете, я добавил в sidekiq.rb следующее:
config.error_handlers << Proc.new { |ex,context| Airbrake.notify_or_ignore(ex, parameters: context) }
Затем Airbrake смог отлавливать ошибки, когда они возникали в моей среде разработки. Однако после развертывания в более высокой среде Airbrake перестал обнаруживать ошибки Sidekiq. Есть ли причина, по которой это произойдет? Есть ли что-то еще, что мне нужно настроить внутри моего приложения?
Я использую версию драгоценного камня sidekiq ~> 3.0.2, версию драгоценного камня airbrake ~> 4.0.0 и рельсы 3.2.18.
Вот мой полный файл sidekiq.rb:
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
А вот и мой полный airbrake.rb:
Airbrake.configure do |config|
config.user_attributes = [:id, :email]
config.api_key = '*my_api_key*'
end