Sidekiq v6.0.1 Release Notes
Release Date: 2019-10-02 // over 4 years ago-
- ๐ Performance tuning, Sidekiq should be 10-15% faster now [#4303, 4299, 4269, fatkodima]
- ๐ป Dark Mode support in Web UI (further design polish welcome!) [#4227, mperham, fatkodima, silent-e]
- ๐ท Job-specific log levels, allowing you to turn on debugging for
problematic workers. [fatkodima, #4287]
ruby MyWorker.set(log_level: :debug).perform_async(...)
- ๐ท Ad-hoc job tags. You can tag your jobs with, e.g, subdomain, tenant, country,
locale, application, version, user/client, "alpha/beta/pro/ent", types of jobs,
teams/people responsible for jobs, additional metadata, etc.
Tags are shown on different pages with job listings. Sidekiq Pro users
can filter based on them [fatkodima, #4280]
ruby class MyWorker include Sidekiq::Worker sidekiq_options tags: ['bank-ops', 'alpha'] ... end
- โฑ Fetch scheduled jobs in batches before pushing into specific queues.
This will decrease enqueueing time of scheduled jobs by a third. [fatkodima, #4273]
ScheduledSet with 10,000 jobs Before: 56.6 seconds After: 39.2 seconds
- Compress error backtraces before pushing into Redis, if you are
storing error backtraces, this will halve the size of your RetrySet
in Redis [fatkodima, #4272]
RetrySet with 100,000 jobs Before: 261 MB After: 129 MB
- ๐ Support display of ActiveJob 6.0 payloads in the Web UI [#4263]
- Add
SortedSet#scan
for pattern based scanning. For large sets this API will be MUCH faster than standard iteration using each. [fatkodima, #4262]ruby Sidekiq::DeadSet.new.scan("UnreliableApi") do |job| job.retry end
- ๐ท Dramatically speed up SortedSet#find_job(jid) by using Redis's ZSCAN
support, approx 10x faster. [fatkodima, #4259]
zscan 0.179366 0.047727 0.227093 ( 1.161376) enum 8.522311 0.419826 8.942137 ( 9.785079)
- โ
Respect rails' generators
test_framework
option and gracefully handle extraworker
suffix on generator [fatkodima, #4256] - โ Add ability to sort 'Enqueued' page on Web UI by position in the queue [fatkodima, #4248]
- ๐ Support
Client.push_bulk
with different delays [fatkodima, #4243]ruby Sidekiq::Client.push_bulk("class" => FooJob, "args" => [[1], [2]], "at" => [1.minute.from_now.to_f, 5.minutes.from_now.to_f])
- โ
Easier way to test enqueuing specific ActionMailer and ActiveRecord delayed jobs. Instead of manually
parsing embedded class, you can now test by fetching jobs for specific classes. [fatkodima, #4292]
ruby assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(FooMailer).size
- โ Add
sidekiqmon
to gemspec executables [#4242] - Gracefully handle
Sidekiq.logger = nil
[#4240] - Inject Sidekiq::LogContext module if user-supplied logger does not include it [#4239]