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".