docs/8.0-Upgrade.md
Sidekiq 8.0 contains major new features and some breaking changes which streamline proper operation of Sidekiq. Please read these notes carefully.
Sidekiq 8.0 adds a new "Profile" tab which allows you to quickly and accurately profile an executing Sidekiq job in your production environment, making performance tuning your application code much easier. See the Profiling wiki page for details.
Sidekiq::Web has been completely overhauled to improve security and ease of configuration.
The implementation has been significantly refactored and the CSS rewritten from scratch to remove Twitter Bootstrap.
This reduced CSS from 160KB to 16KB and average page render time from 55ms to 3ms.
See pull request #6532 for more details.
3rd party Sidekiq Web extensions may look poor until they adapt to the new CSS.
Previously Sidekiq stored 8 hours of job execution metrics. This has been increased to 72 hours, allowing you to see a full weekend of data and multi-day patterns. By aggregating the data, a 9x increase in visibility only requires 2x the storage in Redis.
error_handler now takes a third config argument ->(ex, context, config).ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper to Sidekiq::ActiveJob::Wrapper.
This can save a significant amount of memory when creating a large number of Active Jobs.created_at and enqueued_at values within the job payload have changed type.
Previously they were stored at epoch floats (1234567890.123456).
They are now stored as epoch milliseconds (1234567890123) in order to avoid floating point and reduce size.ActiveJob::Arguments to serialize CurrentAttributes, supporting Symbols, GlobalID, etc.
This should be backwards compatible.Support is only guaranteed for the current and previous major versions. With the release of Sidekiq 8, Sidekiq 6.x is no longer supported. Sidekiq 6.0.0 was released in August 2019.
As always, please upgrade Sidekiq one major version at a time. If you are already running Sidekiq 7.x, then:
gem 'sidekiq', '< 8'
gem 'sidekiq', '< 9'