README.md in sidekiq-unique-jobs-6.0.0 vs README.md in sidekiq-unique-jobs-6.0.1

- old
+ new

@@ -27,10 +27,11 @@ * [Reschedule](#reschedule) * [Usage](#usage) * [Finer Control over Uniqueness](#finer-control-over-uniqueness) * [After Unlock Callback](#after-unlock-callback) * [Logging](#logging) + * [Cleanup Dead Locks](#cleanup-dead-locks) * [Debugging](#debugging) * [Sidekiq Web](#sidekiq-web) * [Show Unique Digests](#show-unique-digests) * [Show keys for digest](#show-keys-for-digest) * [Communication](#communication) @@ -351,20 +352,43 @@ ... end ``` +### Cleanup Dead Locks + +For sidekiq versions before 5.1 a `sidekiq_retries_exhausted` block is required per worker class. + +```ruby +class MyWorker + sidekiq_retries_exhausted do |msg, _ex| + SidekiqUniqueJobs::Digests.delete_by(digest: msg['unique_digest']) if msg['unique_digest'] + end +end +``` + +Starting in v5.1, Sidekiq can also fire a global callback when a job dies: + +```ruby +# this goes in your initializer +Sidekiq.configure_server do |config| + config.death_handlers << ->(job, _ex) do + SidekiqUniqueJobs::Digests.delete_by(digest: job['unique_digest']) if job['unique_digest'] + end +end +``` + ## Debugging There are two ways to display and remove keys regarding uniqueness. The console way and the command line way. ### Sidekiq Web To use the web extension you need to require it in your routes. ```ruby # app/config/routes.rb -require 'sidekiq-unique-jobs/web' +require 'sidekiq_unique_jobs/web' mount Sidekiq::Web, at: '/sidekiq' ``` There is no need to `require 'sidekiq/web'` since `sidekiq_unique_jobs/web` already does this.