Is your feature request related to a problem? Please describe.
When sidekiq process is killed (SIGKILL) everything stays as-is in Redis. Sidekiq has mechanism of heartbeats to check if processor is still running or not. The same should apply for the unique jobs.
Describe the solution you'd like
I suggest some job that would periodically (e.g. every minute) check whether the unique digest lock is still valid = whether it is assigned to some running job. This would require to store also "JID" to each unique digest so that they can be paired together.
If the job is not running anymore it means the unique digest is stale and should be removed.
Otherwise it is blocking all future jobs until manual removal. I would like to prevent this manual removals by implementing this "auto-heal" feature.
Is your feature request related to a problem? Please describe.
When sidekiq process is killed (SIGKILL) everything stays as-is in Redis. Sidekiq has mechanism of heartbeats to check if processor is still running or not. The same should apply for the unique jobs.
Describe the solution you'd like
I suggest some job that would periodically (e.g. every minute) check whether the unique digest lock is still valid = whether it is assigned to some running job. This would require to store also "JID" to each unique digest so that they can be paired together.
If the job is not running anymore it means the unique digest is stale and should be removed.
Otherwise it is blocking all future jobs until manual removal. I would like to prevent this manual removals by implementing this "auto-heal" feature.