Class: RooOnRails::Railties::SidekiqIntegration
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- RooOnRails::Railties::SidekiqIntegration
- Defined in:
- lib/roo_on_rails/railties/sidekiq_integration.rb
Instance Method Summary collapse
- #add_middleware(app) ⇒ Object
- #config_hirefire(app) ⇒ Object
- #config_sidekiq ⇒ Object
- #config_sidekiq_metrics ⇒ Object
Instance Method Details
#add_middleware(app) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 54 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_hirefire(app) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 24 def config_hirefire(app) unless ENV['HIREFIRE_TOKEN'] Rails.logger.warn 'No HIREFIRE_TOKEN token set, auto scaling not enabled' return end add_middleware(app) end |
#config_sidekiq ⇒ Object
32 33 34 35 36 37 |
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 32 def config_sidekiq ::Sidekiq.configure_server do |x| x.[:concurrency] = RooOnRails::Sidekiq::Settings.concurrency.to_i x.[:queues] = RooOnRails::Sidekiq::Settings.queues end end |
#config_sidekiq_metrics ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/roo_on_rails/railties/sidekiq_integration.rb', line 39 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 |