How to delete jobs from Sidekiq Retries

Hi future-me! This is just a list of snippets I might be looking for next time I suddenly have to deal with a huge list of failing Sidekiq jobs being retried over and over.

List job classes sitting in the retries list

Number of jobs being retried for a specific class
  .select { |j| j.display_class == "AJob" }

Delete all jobs for a class from the retries list
  .select { |j| j.display_class == "AJob" }

(similarly, there’s &:kill, &:retry)

(similarly, there’s Sidekiq::DeadSet, Sidekiq::ScheduledSet)

If the jobs are RES async handlers, list the events:
  .select  { |j| j.display_class == "MyAsyncHandler" }
  .collect { |j| j.args[0]["arguments"][0]["event_id"] }
  .collect { |id| }

(warning: the details depend on your RES async scheduler implementation)

Unique error messages for a class of jobs
  .select { _1.display_class == "AJob" }
  .map    { _1.item["error_message"] }


Now, a plug 🔌. Join ARKADEMY.DEV and get access to our best courses: Rails Architect Masterclass, Anti-IF course, Blogging for busy programmers, Async Remote, TDD video class, Domain-Driven Rails video course and growing!

You might also like