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

73 lines
2.9 KiB
Markdown
Raw Normal View History

2018-12-28 13:07:03 -05:00
# 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.
2018-12-28 13:07:03 -05:00
## What's New
This release has major breaking changes. Read and test carefully in production.
2019-07-24 13:59:00 -04:00
- ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
2019-08-02 13:56:15 -04:00
features/internals like the retry subsystem. Prefer the native
2019-08-28 12:23:17 -04:00
Sidekiq::Worker APIs as some Sidekiq features (e.g. unique jobs) do not work well with AJ.
2019-11-30 13:18:10 -05:00
(requires Rails 6.0.2)
2019-07-24 13:59:00 -04:00
```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
2019-03-06 12:17:45 -05:00
* 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
2019-03-06 12:17:45 -05:00
you can override it by configuring the log formatter explicitly. See
'sidekiq/logger' for implementation details.
2019-03-06 12:17:45 -05:00
```ruby
2018-12-28 13:07:03 -05:00
Sidekiq.configure_server do |config|
config.log_formatter = AcmeCorp::PlainLogFormatter.new
# config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
2018-12-28 13:07:03 -05:00
end
```
2019-09-02 21:57:31 -04:00
Please see the [Logging](https://github.com/mperham/sidekiq/wiki/Logging) wiki page for the latest documentation and notes.
2019-08-02 14:08:49 -04:00
- **Remove the daemonization, logfile and pidfile command line arguments and `sidekiqctl` binary**.
2019-03-06 12:17:45 -05:00
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.
2019-08-02 13:56:15 -04:00
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.
2018-12-28 13:07:03 -05:00
- **Validate proper usage of the `REDIS_PROVIDER` variable.**
2019-03-06 12:17:45 -05:00
This variable is meant to hold the name of the environment
2018-12-28 13:07:03 -05:00
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.**
2019-03-06 12:17:45 -05:00
Both Heroku and ECS now use 30 second shutdown timeout
2018-12-28 13:07:03 -05:00
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]
2019-08-02 13:56:15 -04:00
* **Rails <5** is no longer supported. Rails 6+ only works in zeitwerk mode.
* **Ruby <2.5** is no longer supported.
2019-03-06 12:17:45 -05:00
* **Redis <4** is no longer supported.
2018-12-28 13:07:03 -05:00
## 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'
```