title: How to make failed sidekiq job retry with new production Rails code?
body: <p>I'm running a Rails 5.0.x application on Heroku with Sidekiq/Redis and I deployed new code that a failed Sidekiq job that is retrying multiple times should be using.</p>
  
  <p>In <a href="https://github.com/mperham/sidekiq/wiki/FAQ" rel="nofollow noreferrer">https://github.com/mperham/sidekiq/wiki/FAQ</a>, I see:</p>
  
  <blockquote>
    <p>Rails has two features which are relevant here: eager loading and
    autoloading. Autoloading is only active in development mode and is not
    thread-safe so Sidekiq disables it and uses eager loading only. Eager
    loading loads your code only once when starting the server - it does
    not reload your code between jobs. If you have code located outside of
    the standard Rails directories (e.g. app/models, app/controllers,
    etc), Sidekiq will not see it unless you add the path to
    eager_load_paths in your Rails application configuration:</p>
  </blockquote>
  
  <pre><code># in config/application.rb
  module AcmeCorp
    class Application &lt; Rails::Application
      config.eager_load_paths += ["#{config.root}/lib/workers"]
    end
  end
  </code></pre>
  
  <p>"Because Sidekiq does not reload code between jobs", does this mean I can't use the new rails production code without starting a new job?  Or if I restart the failed job, will it use the newly deployed code?</p>