Please see http://sidekiq.org/pro for more details and how to buy.
- Convert Batch UI to Bootstrap 3
- Pro now requires Sidekiq 2.15.0
- Add Sidekiq::Batch::Status#delete [#1205]
- Pro now requires Sidekiq 2.14.0
- Fix bad exception handling in batch callbacks [#1134]
- Convert Batch UI to ERB
- Problem with reliable fetch which could lead to lost jobs when Sidekiq is shut down normally. Thanks to MikaelAmborn for the report. [#1109]
- Forgot to push paging code necessary for
delete_job
performance.
- LEAK Fix batch key which didn't expire in Redis. Keys match /b-[a-f0-9]{16}-pending/, e.g. "b-4f55163ddba10aa0-pending" [#1057]
- Reliable fetch now supports multiple queues, using the algorithm spec'd by @jackrg [#1102]
- Fix issue with reliable_push where it didn't return the JID for a pushed job when sending previously cached jobs to Redis.
- Add fast Sidekiq::Queue#delete_job(jid) API which leverages Lua so job lookup is 100% server-side. Benchmark vs Sidekiq's Job#delete API:
Sidekiq Pro API
0.030000 0.020000 0.050000 ( 1.640659)
Sidekiq API
17.250000 2.220000 19.470000 ( 22.193300)
- Add fast Sidekiq::Queue#delete_by_class(klass) API to remove all jobs of a given type. Uses server-side Lua for performance.
- New
sidekiq/pro/reliable_push
which makes Sidekiq::Client resiliant to Redis network failures. [#793] - Move
sidekiq/reliable_fetch
tosidekiq/pro/reliable_fetch
- Sidekiq Pro changelog moved to mperham/sidekiq for public visibility.
- Add new Rack endpoint for easy polling of batch status via JavaScript. See
sidekiq/rack/batch_status
- Fix bad /batches path in Web UI
- Fix Sinatra conflict with sidekiq-failures
- Fix issue with lifecycle notifications not firing.
- Update due to Sidekiq API changes.
- Rearchitect Sidekiq's Fetch code to support different fetch strategies. Add a ReliableFetch strategy which works with Redis' RPOPLPUSH to ensure we don't lose messages, even when the Sidekiq process crashes unexpectedly. [sidekiq#607]
- Reimplement existing notifications using batch on_complete events.
- Rejigger batch callback notifications.
- Add new Batch 'callback' notification support, for in-process notification.
- Symbolize option keys passed to Pony [sidekiq#603]
- Batch no longer requires the Web UI since Web UI usage is optional. You must require is manually in your Web process:
require 'sidekiq/web'
require 'sidekiq/batch/web'
mount Sidekiq::Web => '/sidekiq'
- Worker instances can access the associated jid and bid via simple accessors.
- Batches can now be modified while being processed so, e.g. a batch job can add additional jobs to its own batch.
def perform(...)
batch = Sidekiq::Batch.new(bid) # instantiate batch associated with this job
batch.jobs do
SomeWorker.perform_async # add another job
end
end
- Save error backtraces in batch's failure info for display in Web UI.
- Clean up email notification a bit.
- Add optional batch description
- Mutable batches. Batches can now be modified to add additional jobs at runtime. Example would be a batch job which needs to create more jobs based on the data it is processing.
batch = Sidekiq::Batch.new(bid)
batch.jobs do
# define more jobs here
end
- Fix issues with symbols vs strings in option hashes
- Webhook notification support
- Redis pubsub
- Email polish
- Batches
- Notifications
- Statsd middleware