diff --git a/lib/sidekiq.rb b/lib/sidekiq.rb index f3fbca6b..6bed67b9 100644 --- a/lib/sidekiq.rb +++ b/lib/sidekiq.rb @@ -110,11 +110,25 @@ module Sidekiq end def self.server_middleware - @server_chain ||= Processor.default_middleware + @server_chain ||= default_server_middleware yield @server_chain if block_given? @server_chain end + def self.default_server_middleware + require 'sidekiq/middleware/server/retry_jobs' + require 'sidekiq/middleware/server/logging' + + Middleware::Chain.new do |m| + m.add Middleware::Server::Logging + m.add Middleware::Server::RetryJobs + if defined?(::ActiveRecord::Base) + require 'sidekiq/middleware/server/active_record' + m.add Sidekiq::Middleware::Server::ActiveRecord + end + end + end + def self.default_worker_options=(hash) @default_worker_options = default_worker_options.merge(hash.stringify_keys) end diff --git a/lib/sidekiq/processor.rb b/lib/sidekiq/processor.rb index bf0a5fe0..03554dfd 100644 --- a/lib/sidekiq/processor.rb +++ b/lib/sidekiq/processor.rb @@ -1,14 +1,12 @@ require 'sidekiq/util' -require 'sidekiq/middleware/server/retry_jobs' -require 'sidekiq/middleware/server/logging' - module Sidekiq ## # The Processor receives a message from the Manager and actually # processes it. It instantiates the worker, runs the middleware # chain and then calls Sidekiq::Worker#perform. class Processor + # To prevent a memory leak, ensure that stats expire. However, they # should take up a minimal amount of storage so keep them around # for a long time. @@ -16,17 +14,6 @@ module Sidekiq include Util - def self.default_middleware - Middleware::Chain.new do |m| - m.add Middleware::Server::Logging - m.add Middleware::Server::RetryJobs - if defined?(::ActiveRecord::Base) - require 'sidekiq/middleware/server/active_record' - m.add Sidekiq::Middleware::Server::ActiveRecord - end - end - end - attr_reader :thread def initialize(mgr)