mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Upgrade notes
This commit is contained in:
parent
e52582e3ca
commit
58ef385518
3 changed files with 81 additions and 5 deletions
|
@ -1,11 +1,38 @@
|
|||
# Welcome to Sidekiq 7.0!
|
||||
|
||||
Sidekiq 7.0 contains some breaking changes which streamline proper operation
|
||||
of Sidekiq. It completes the transition from the `redis` gem to the `redis-client`
|
||||
gem, which adds support for the RESP3 protocol and provides better compatibility
|
||||
with future versions of Redis.
|
||||
Sidekiq 7.0 contains major new features and some breaking changes which streamline proper operation of Sidekiq.
|
||||
It completes the transition from the `redis` gem to the `redis-client` gem, which adds support for the RESP3 protocol and provides better compatibility with future versions of Redis.
|
||||
|
||||
## What's New
|
||||
# What's New
|
||||
|
||||
## Job Metrics
|
||||
|
||||
Sidekiq 7.0 adds a new "Metrics" tab in the Web UI with high-resolution data on job execution times along with the ability to mark deploy times.
|
||||
This allows you to monitor job execution times minute by minute and see when a deploy causes a performance regression.
|
||||
|
||||
## Embedding
|
||||
|
||||
Embedding is an experimental new way to run Sidekiq. Previously, you could only run Sidekiq by starting a new process with `bundle exec sidekiq`. Now you can embed Sidekiq within another process with just a few lines of Ruby code. See the [Embedding](/mperham/sidekiq/wiki/Embedding) wiki page for details. I'm labeling this "experimental" because it's quite possible that 3rd party plugins or various edge cases within Sidekiq could break. Feedback is very much appreciated if you try out embedding, even if just "works great for us!".
|
||||
|
||||
## Capsules
|
||||
|
||||
Sidekiq 7.0 allows you to define "capsules" which execute jobs from queues. The `default` capsule spins up `10` Threads to fetch jobs from the `default` queue. You can change these values and/or define your own separate Capsules if you wish to throttle execution from a given queue. For instance, here's how to define a single-threaded capsule for thread-unsafe jobs:
|
||||
|
||||
```ruby
|
||||
Sidekiq.configure_server do |config|
|
||||
# edits the default capsule
|
||||
config.queues = %w[critical default low]
|
||||
config.concurrency = 5
|
||||
|
||||
# define a new capsule which processes jobs from the `single` queue one at a time
|
||||
config.capsule("single-threaded") do |cap|
|
||||
cap.concurrency = 1
|
||||
cap.queues = %w[single]
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
This Sidekiq instance will have 6 threads executing jobs. Note the concurrency is per-instance; Capsules do not provide cluster-wide throttling but only limit concurrency per instance.
|
||||
|
||||
### redis-client
|
||||
|
||||
|
|
18
docs/Ent-3.0-Upgrade.md
Normal file
18
docs/Ent-3.0-Upgrade.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Welcome to Sidekiq Enterprise 3.0
|
||||
|
||||
Sidekiq Enterprise 3.0 contains some breaking changes which refactor internals, remove deprecated features and update required dependency versions.
|
||||
|
||||
## What's New
|
||||
|
||||
### Refactoring internals
|
||||
|
||||
Sidekiq 7.0's new Embedding support required substantial refactoring of Enterprise internals.
|
||||
I've tried to maintain compatibility where possible.
|
||||
|
||||
## Version Support
|
||||
|
||||
- Redis 6.2+ is now required
|
||||
- Ruby 2.7+ is now required
|
||||
- Rails 6.0+ is now supported
|
||||
|
||||
Support is only guaranteed for the current and previous major versions. With the release of Sidekiq Pro 6, Sidekiq Pro 4.x is no longer supported.
|
31
docs/Pro-6.0-Upgrade.md
Normal file
31
docs/Pro-6.0-Upgrade.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Welcome to Sidekiq Pro 6.0
|
||||
|
||||
Sidekiq Pro 6.0 contains some breaking changes which refactor internals, remove deprecated features and update required dependency versions.
|
||||
|
||||
## What's New
|
||||
|
||||
### Refactoring internals
|
||||
|
||||
Sidekiq 7.0's new Embedding support required substantial refactoring of Pro internals.
|
||||
I've tried to maintain compatibility where possible.
|
||||
|
||||
### Remove statsd
|
||||
|
||||
The `statsd-ruby` gem doesn't see much maintenance these days whereas the `dogstatsd-ruby` gem is active and still adding features.
|
||||
For this reason, statsd support has been removed and the configuration method has changed slightly:
|
||||
|
||||
```ruby
|
||||
Sidekiq::Pro.dogstatsd = -> { Datadog::Statsd.new("localhost", 8125) } # old way
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
config.dogstatsd = -> { Datadog::Statsd.new("localhost", 8125) } # new way
|
||||
end
|
||||
```
|
||||
|
||||
## Version Support
|
||||
|
||||
- Redis 6.2+ is now required
|
||||
- Ruby 2.7+ is now required
|
||||
- Rails 6.0+ is now supported
|
||||
|
||||
Support is only guaranteed for the current and previous major versions. With the release of Sidekiq Pro 6, Sidekiq Pro 4.x is no longer supported.
|
Loading…
Reference in a new issue