Я привык использовать метод delayed_jobs для входа в консоль, чтобы увидеть, что находится в очереди, и простоту очистки очереди при необходимости. Есть ли в Sidekiq для этого похожие команды? Спасибо!
ruby-on-rails
sidekiq
настойчивость
источник
источник
Ответы:
Я никогда не использовал Sidekiq, поэтому возможно, что есть методы только для просмотра заданий в очереди, но на самом деле они будут просто оболочкой для команд Redis, поскольку в основном все Sidekiq (и Resque):
К сожалению, удалить конкретное задание немного сложнее, так как вам придется скопировать его точное значение:
Вы можете сделать все это еще проще с помощью
redis-cli
:источник
Sidekiq::Client.registered_queues
был заменен наSidekiq::Queue.all
иSidekiq::Client.registered_workers
наSidekiq::Workers.new
, см .: github.com/mperham/sidekiq/blob/…Есть эргономичный API для просмотра и управления очередями. .
По умолчанию это не требуется.
Вот выдержка:
Вы также можете получить некоторую сводную статистику.
источник
если есть какое-либо запланированное задание. Вы можете удалить все задания, используя следующую команду:
если есть очереди, в которых вы хотите удалить все задания, вы можете использовать следующую команду:
Задания повторных попыток также можно удалить с помощью следующей команды:
Здесь есть дополнительная информация по следующей ссылке, вы можете оформить заказ: https://github.com/mperham/sidekiq/wiki/API
источник
Существует API для доступа к информации о рабочих, очередях и заданиях в реальном времени.
Посетите здесь https://github.com/mperham/sidekiq/wiki/API
источник
Обходной путь - использовать модуль тестирования (требуется «sidekiq / testing») и слить рабочую среду (MyWorker.drain).
источник
В очереди по умолчанию были повешенные «рабочие», и я мог видеть их через веб-интерфейс. Но они не были доступны из консоли, если я использовал Sidekiq :: Queue.new.size
Используя redis-cli, я смог их найти
Решение было:
Также в Sidekiq v3 есть команда
Но почему-то у меня в тот день не получилось
источник
И если вы хотите очистить очередь повторных попыток sidekiq, это так:
Sidekiq::RetrySet.new.clear
источник
источник
keys *
производственную среду, если вы не используете этот Redis только для sidekiq. Особенно не запускайте его, если у вас большой набор данных (кеш и т. Д.). Redis является однопоточным иkeys *
блокируется - это может привести к простоям в несколько минут для больших наборов данных (несколько гигабайт).Задача Rake для очистки всех очередей sidekiq:
Использование:
источник