2016-12-22 11 views
1

Мне нужно создать центрального работника, который может иметь несколько сервисов, нажимая на него часовые события. Следовательно, у каждой службы будет свой собственный dsn, можно ли настроить dsn на центрального рабочего, а не на клиента?Можем ли мы настроить сторожевой dsn на стороне рабочего, а не на стороне клиента?

В настоящее время у меня есть что-то вроде этого на приложение, которое будет толкать событие Redis:

Raven.configure do |config| 
    configuration = { 
    dsn: Figaro.env.sentry_host, 
    environments: %w(production), 
    sanitize_fields: Rails.application.config.filter_parameters.map(&:to_s), 
    } 

    config.async = lambda { |event| 
    SentryNotifierJob.perform_async(event.to_hash, configuration) 
    } 

    config.logger = Rails.logger 
end 

и это на работника:

class SentryNotifierJob 
    include Sidekiq::Worker 
    sidekiq_options :retry => true, queue: :default 

    def perform(event, config) 

    Raven.configure do |config| 
     config.dsn = config[:dsn] 

     config.sanitize_fields = configuration[:sanitize_fields] 

     config.processors = [Raven::Processor::SanitizeData] 
     config.sanitize_fields.push('Authorization', 'tokenId', 'Client-Id', 'Pass-Key', 'gcmKey', 'deviceToken') 

     config.logger = Rails.logger 
    end 
    Raven.send_event(event) 
    end 
end 

ответ

1

Получил ответ, да, то можно настроить сторожевой dsn от рабочего вместо клиентской стороны. Raven не заботится о том, где обновляется конфиг.