ruby on rails - rails - ¿Cómo borrar todos los trabajos de sidekiq?
sidekiq rails jobs (5)
Estoy usando sidekiq para tareas en segundo plano en la aplicación Rails. Ahora la cantidad de trabajos aumenta, así que quiero borrar todos los trabajos. Intenté el siguiente comando en la consola
Sidekiq::Queue.new.clear
pero estaba dando el siguiente error.
NameError: uninitialized constant Sidekiq::Queue
¿Cómo borro todos los trabajos de sidekiq?
A partir de la última versión de Sidekiq, solo explórelo:
require ''sidekiq/api''
q = Sidekiq::Queue.new
q.💣
Sí, el comando para borrar todo es literalmente un emoji de bomba. También funciona para Sidekiq::RetrySet
.
O si no eres divertido, puedes usar q.clear
Borre los comandos de 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
De acuerdo con este problema en Github: https://github.com/mperham/sidekiq/issues/1732 ahora necesita
require ''sidekiq/api''
Puedes hacer lo que dice en el número 1077 o como se informa en este blog en noobsippets
Ambos sugieren que hagamos lo siguiente, y se puede hacer en la consola de rieles:
Sidekiq.redis { |conn| conn.flushdb }
redis-cli flushdb
También puedes usar redis-cli flushall