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.