Я использую sidekiq для фоновых задач в приложении Rails. Теперь количество рабочих мест становится больше, поэтому я хочу очистить все рабочие места. Я попробовал следующую команду в консоли
Sidekiq::Queue.new.clear
но это давало следующую ошибку.
NameError: uninitialized constant Sidekiq::Queue
Как мне удалить все задания из sidekiq?
ruby-on-rails
ruby
sidekiq
Может может
источник
источник
include 'sidekiq'
раньшеrequire 'sidekiq'
раньшеОтветы:
Согласно этой проблеме на Github: https://github.com/mperham/sidekiq/issues/1732 теперь вам нужно
источник
Вы можете сделать то, что написано по проблеме 1077 или как написано в этом блоге на noobsippets.
Оба предлагают сделать следующее, и это можно сделать на консоли rails:
Sidekiq.redis { |conn| conn.flushdb }
источник
redis-cli flushdb
если бы вы запускали redis на отдельном сервере от вашего rails-сервера. Мне было интересно, почемуredis-cli flushdb
не работает, пока я не вспомнил, что мне нужно включать аргументы хоста и порта.Команды очистки заданий Sidekiq:
источник
Sidekiq::Queue.all.map(&:clear)
... Полезно, когда вы синхронизируете базуЧто касается последнего Sidekiq, просто взорвите его:
Да, команда очистить все - это буквально смайлик-бомба. Также работает для
Sidekiq::RetrySet
.Или, если вам не весело, вы можете использовать
q.clear
источник
invalid byte sequence in US-ASCII (ArgumentError)
к выполнениюq.💣
: /Вы также можете использовать
redis-cli flushall
источник
Используйте Rails runner в одну строку
источник
Все задачи Sidekiq сохраняются в «Redis».
Вы можете очистить Redis с помощью этой команды
источник
Вы можете использовать это для очистки всех заданий
источник
Если вы хотите удалить задания из определенных очередей, попробуйте:
Прочтите все о sidekiq и важных консольных командах - https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
источник
источник
Я понял, что
Sidekiq.redis { |conn| conn.flushdb }
удаляет все ключи из базы данных redis. Есть более безопасный способ очистить все очереди sidekiq, используяredis-cli
:То же самое может быть достигнуто с помощью Sidekiq API (см. Ответ Рави Пракаша Сингха )
источник