lib/plain_apm/extensions/context/railtie.rb in plain_apm-0.9.2 vs lib/plain_apm/extensions/context/railtie.rb in plain_apm-0.9.3

- old
+ new

@@ -5,30 +5,24 @@ # # https://github.com/steveklabnik/request_store/ # # See LICENSE.txt in the current directory for the license. -begin - require "rails/railtie" -rescue LoadError - nil -end - module PlainApm module Extensions module Context - if defined?(Rails::Railtie) - class Railtie < Rails::Railtie - initializer "plain_apm.initialize_context" do |app| - ActiveSupport.on_load(:active_job) do |klass| - klass.prepend(PlainApm::Extensions::Context::ActiveJob) - end + class Railtie < Rails::Railtie + initializer(:plain_apm_thread_context, after: :plain_apm_agent_start) do |app| + next if !PlainApm.agent.enabled? - if defined?(ActionDispatch::RequestId) - app.config.middleware.insert_after ActionDispatch::RequestId, PlainApm::Extensions::Context::Rack - else - app.config.middleware.insert_after Rack::MethodOverride, PlainApm::Extensions::Context::Rack - end + ActiveSupport.on_load(:active_job, run_once: true) do |klass| + klass.prepend(PlainApm::Extensions::Context::ActiveJob) + end + + if defined?(ActionDispatch::RequestId) + app.config.middleware.insert_after ActionDispatch::RequestId, PlainApm::Extensions::Context::Rack + else + app.config.middleware.insert_after Rack::MethodOverride, PlainApm::Extensions::Context::Rack end end end end end