Sidekiq v3.0.0 Release Notes
-
โฌ๏ธ Please see [3.0-Upgrade.md](docs/3.0-Upgrade.md) for more comprehensive upgrade notes.
- ๐ท Dead Job Queue - jobs which run out of retries are now moved to a dead
job queue. These jobs must be retried manually or they will expire
after 6 months or 10,000 jobs. The Web UI contains a "Dead" tab
exposing these jobs. Use
sidekiq_options :retry => false
if you ๐ท don't wish jobs to be retried or put in the DJQ. Use ๐ทsidekiq_options :retry => 0
if you don't want jobs to retry but go straight to the DJQ. - ๐จ Process Lifecycle Events - you can now register blocks to run at
certain points during the Sidekiq process lifecycle: startup, quiet and
shutdown.
ruby Sidekiq.configure_server do |config| config.on(:startup) do # do something end end
- Global Error Handlers - blocks of code which handle errors that
occur anywhere within Sidekiq, not just within middleware.
ruby Sidekiq.configure_server do |config| config.error_handlers << proc {|ex,ctx| ... } end
- ๐จ Process Heartbeat - each Sidekiq process will ping Redis every 5 seconds to give a summary of the Sidekiq population at work.
- ๐ท The Workers tab is now renamed to Busy and contains a list of live Sidekiq processes and jobs in progress based on the heartbeat.
- Shardable Client - Sidekiq::Client instances can use a custom
Redis connection pool, allowing very large Sidekiq installations to scale by
sharding: sending different jobs to different Redis instances.
ruby client = Sidekiq::Client.new(ConnectionPool.new { Redis.new }) client.push(...)
ruby Sidekiq::Client.via(ConnectionPool.new { Redis.new }) do FooWorker.perform_async BarWorker.perform_async end
Sharding support does require a breaking change to client-side โฌ๏ธ middleware, see docs/3.0-Upgrade.md. - ๐ New Chinese, Greek, Swedish and Czech translations for the Web UI.
- โก๏ธ Updated most languages translations for the new UI features.
- โ Remove official Capistrano integration - this integration has been moved into the capistrano-sidekiq gem.
- โ Remove official support for MRI 1.9 - Things still might work but I no longer actively test on it.
- โ Remove built-in support for Redis-to-Go.
Heroku users:
heroku config:set REDIS_PROVIDER=REDISTOGO_URL
- โ Remove built-in error integration for Airbrake, Honeybadger, ExceptionNotifier and Exceptional. Each error gem should provide its own Sidekiq integration. Update your error gem to the latest version to pick up Sidekiq support.
- โฌ๏ธ Upgrade to connection_pool 2.0 which now creates connections lazily.
- Remove deprecated Sidekiq::Client.registered_* APIs
- โ Remove deprecated support for the old Sidekiq::Worker#retries_exhausted method.
- โ Removed 'sidekiq/yaml_patch', this was never documented or recommended.
- โ Removed --profile option, #1592
- โ Remove usage of the term 'Worker' in the UI for clarity. Users would call both threads and processes 'workers'. Instead, use "Thread", "Process" or "Job".
- ๐ท Dead Job Queue - jobs which run out of retries are now moved to a dead
job queue. These jobs must be retried manually or they will expire
after 6 months or 10,000 jobs. The Web UI contains a "Dead" tab
exposing these jobs. Use