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.
- The underlying class for Active Jobs has changed from
ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper
toSidekiq::ActiveJob::Wrapper
. This can save a significant amount of memory when creating a large number of Active Jobs. - The
created_at
andenqueued_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. - Sidekiq Pro's Batch data model has also changed, customers must run Sidekiq Pro 7.3.6+ for a few weeks to ensure forward data compatibility with 8.0.
- Sidekiq now uses
ActiveJob::Arguments
to serialize CurrentAttributes, supporting Symbols, GlobalID, etc. This should be backwards compatible. - Reduce Sidekiq's default thread timeslice from 100ms to 50ms, which should help with processes which are overloaded with too much concurrency. Overloaded processes can see random TimeoutErrors.
- Log output has been tweaked to be more colorful and easier to read.
- Redis 7.0+, Valkey 7.2+ or DragonflyDB 1.27+
- Ruby 3.2+ is now required
- Rails 7.0+ is now supported
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:
- Upgrade to the latest Sidekiq 7.x.
gem 'sidekiq', '< 8'
- Fix any deprecation warnings you see.
- Upgrade to 8.x.
gem 'sidekiq', '< 9'