Как очистить все задания от sidekiq?

Я использую sidekiq для фоновых задач в приложении Rails. Теперь количество заданий становится больше, поэтому я хочу очистить все задания. Я попробовал следующую команду в консоли

Sidekiq::Queue.new.clear

но он дал следующую ошибку.

NameError: uninitialized constant Sidekiq::Queue 

Как очистить все задания от sidekiq?

Ответ 2

Вы можете сделать так, как говорится в выпуске 1077 или как сообщается в этом блоге noobsippets

Оба предполагают, что мы делаем следующее и можем сделать это на консоли rails:

Sidekiq.redis { |conn| conn.flushdb }

Ответ 3

Команды Clear Sidekiq Jobs:

require 'sidekiq/api'

# Clear retry set

Sidekiq::RetrySet.new.clear

# Clear scheduled jobs 

Sidekiq::ScheduledSet.new.clear

# Clear 'Dead' jobs statistics

Sidekiq::DeadSet.new.clear

# Clear 'Processed' and 'Failed' jobs statistics

Sidekiq::Stats.new.reset

# Clear specific queue

stats = Sidekiq::Stats.new
stats.queues
# => {"main_queue"=>25, "my_custom_queue"=>1}

queue = Sidekiq::Queue.new('my_custom_queue')
queue.count
queue.clear

Ответ 4

Начиная с последнего Sidekiq, просто взорвите его:

require 'sidekiq/api'

q = Sidekiq::Queue.new
q.💣

Да, команда, чтобы очистить все это буквально бомба emoji. Также работает для Sidekiq::RetrySet.

Или, если вам не весело, вы можете использовать q.clear

Ответ 5

redis-cli flushdb

Вы также можете использовать redis-cli flushall

Ответ 6

Используйте Rails Runner в одну строку

rails runner 'Sidekiq.redis { |conn| conn.flushdb }'

Ответ 7

Все задания Sidekiq сохраняются в "Redis".

Вы можете убрать "Redis" этой командой

redis-cli flushall

Ответ 8

Вы можете использовать это для очистки всех работ

require 'sidekiq/api'

Sidekiq::Queue.all.each(&:clear)