Class: RooOnRails::Railties::SidekiqIntegration

Inherits:
Rails::Railtie
  • Object
show all
Defined in:
lib/roo_on_rails/railties/sidekiq_integration.rb

Instance Method Summary collapse

Instance Method Details

#add_middleware(app) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 44

def add_middleware(app)
  $stderr.puts 'HIREFIRE_TOKEN set'
  app.middleware.use HireFire::Middleware
  HireFire::Resource.configure do |config|
    config.dyno(:worker) do
      RooOnRails::Sidekiq::SlaMetric.queue
    end
  end
end

#config_sidekiqObject



22
23
24
25
26
27
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 22

def config_sidekiq
  ::Sidekiq.configure_server do |x|
    x.options[:concurrency] = RooOnRails::Sidekiq::Settings.concurrency.to_i
    x.options[:queues] = RooOnRails::Sidekiq::Settings.queues
  end
end

#config_sidekiq_metricsObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 29

def config_sidekiq_metrics
  # https://github.com/mperham/sidekiq/wiki/Pro-Metrics
  require 'sidekiq-pro'
  ::Sidekiq::Pro.dogstatsd = -> { RooOnRails.statsd }

  ::Sidekiq.configure_server do |config|
    config.server_middleware do |chain|
      require 'sidekiq/middleware/server/statsd'
      chain.add ::Sidekiq::Middleware::Server::Statsd
    end
  end
rescue LoadError
  Rails.logger.warn 'Sidekiq metrics unavailable without Sidekiq Pro'
end