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