2014-07-22 4 views
69

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

Sidekiq::Queue.new.clear 

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

NameError: uninitialized constant Sidekiq::Queue 

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

+0

попробовать 'включают«sidekiq'' перед тем – Benj

+0

@BenjaminSinclaire его дает TypeError: неправильный аргумент типа String (ожидается модуль) –

+2

попробовать 'требуют» sidekiq'' перед тем –

ответ

125

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

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

Sidekiq.redis { |conn| conn.flushdb }

+4

То же, что и 'redis-cli flushdb' из командной строки. –

+0

Кажется, что я сбросил свою аутентификацию в приложениях Rails, которые я использую (что означает, что мне нужно скопировать файлы cookie обратно в мой HTTP-клиент). Есть ли способ предотвратить это? – brandaemon

+1

Здравствуйте, Brandeamon. Вы используете redis для управления сеансом вашего проекта? Поскольку эти команды предназначены для «очистки» всех данных, хранящихся в redis, это эквивалентно базе данных drop или drop в реляционных базах данных. – jonathanccalixto

35

следующие команды ами и др работает для меня:

require 'sidekiq/api' 

# 1. Clear retry set 

Sidekiq::RetrySet.new.clear 

# 2. Clear scheduled jobs 

Sidekiq::ScheduledSet.new.clear 

# 3. Clear 'Processed' and 'Failed' jobs statistics (OPTIONAL) 

Sidekiq::Stats.new.reset 
6
redis-cli flushdb 

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

1

В последней Sidekiq, просто взорвать его:

require 'sidekiq/api' 

q = Sidekiq::Queue.new 
q. 

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

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

Смежные вопросы