From d7c752844e92728631517566b594d6ee6b240f99 Mon Sep 17 00:00:00 2001 From: Mike Perham <mperham@gmail.com> Date: Thu, 3 Nov 2016 11:10:19 -0700 Subject: [PATCH] Force eager loading of all code when running non-development in Rails 4/5, fixes #3203. --- Changes.md | 5 +++++ lib/sidekiq/cli.rb | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Changes.md b/Changes.md index 11f5df37..93a262dc 100644 --- a/Changes.md +++ b/Changes.md @@ -1,5 +1,10 @@ # Sidekiq Changes +4.2.5 +----------- + +- Re-enable eager loading of all code when running non-development Rails 5. [#3203] + 4.2.4 ----------- diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index 66ba2033..bf2412dc 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -229,8 +229,9 @@ module Sidekiq require 'sidekiq/rails' require File.expand_path("#{options[:require]}/config/environment.rb") ::Rails.application.eager_load! - elsif ::Rails::VERSION::MAJOR == 4 + elsif ::Rails::VERSION::MAJOR >= 4 && environment != 'development' # Painful contortions, see 1791 for discussion + # No autoloading, we want to force eager load for everything. require File.expand_path("#{options[:require]}/config/application.rb") ::Rails::Application.initializer "sidekiq.eager_load" do ::Rails.application.config.eager_load = true @@ -238,6 +239,7 @@ module Sidekiq require 'sidekiq/rails' require File.expand_path("#{options[:require]}/config/environment.rb") else + # Rails 5+ && development mode, use Reloader require 'sidekiq/rails' require File.expand_path("#{options[:require]}/config/environment.rb") end