1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00
mperham--sidekiq/6.0-Upgrade.md
2022-05-17 12:58:50 -07:00

72 lines
2.9 KiB
Markdown

# Welcome to Sidekiq 6.0!
Sidekiq 6.0 contains some breaking changes which streamline proper operation
of Sidekiq. It also drops support for EOL versions of Ruby and Rails.
## What's New
This release has major breaking changes. Read and test carefully in production.
- ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
features/internals like the retry subsystem. Prefer the native
Sidekiq::Worker APIs as some Sidekiq features (e.g. unique jobs) do not work well with AJ.
(requires Rails 6.0.2)
```ruby
class MyJob < ActiveJob::Base
queue_as :myqueue
sidekiq_options retry: 10, backtrace: 20
def perform(...)
end
end
```
- Logging has been redesigned to allow pluggable formatters and several
formats ship with Sidekiq:
* default - your typical output on macOS
* heroku - enabled specifically when running in Heroku
* json - a JSON format for search indexing, one hash per line
Sidekiq will enable the best formatter for the detected environment but
you can override it by configuring the log formatter explicitly. See
'sidekiq/logger' for implementation details.
```ruby
Sidekiq.configure_server do |config|
config.log_formatter = AcmeCorp::PlainLogFormatter.new
# config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
end
```
Please see the [Logging](https://github.com/mperham/sidekiq/wiki/Logging) wiki page for the latest documentation and notes.
- **Remove the daemonization, logfile and pidfile command line arguments and `sidekiqctl` binary**.
I've [noted for years](https://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/)
how modern services should be managed with a proper init system.
Managing services manually is more error-prone, let your operating system do it for you.
systemd, upstart, and foreman are three options. See the Deployment wiki page for the latest details.
- **Validate proper usage of the `REDIS_PROVIDER` variable.**
This variable is meant to hold the name of the environment
variable which contains your Redis URL, so that you can switch Redis
providers quickly and easily with a single variable change. It is not
meant to hold the actual Redis URL itself. If you want to manually set
the Redis URL then you may set `REDIS_URL` directly. [#3969]
- **Increase default shutdown timeout from 8 seconds to 25 seconds.**
Both Heroku and ECS now use 30 second shutdown timeout
by default and we want Sidekiq to take advantage of this time. If you
have deployment scripts which depend on the old default timeout, use `-t 8` to
get the old behavior. [#3968]
* **Rails <5** is no longer supported.
* **Ruby <2.5** is no longer supported.
* **Redis <4** is no longer supported.
## Upgrade
As always, please upgrade Sidekiq **one major version at a time**.
If you are already running Sidekiq 5.x, then:
* Upgrade to the latest Sidekiq 5.x.
```ruby
gem 'sidekiq', '< 6'
```
* Fix any deprecation warnings you see.
* Upgrade to 6.x.
```ruby
gem 'sidekiq', '< 7'
```