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. Probé 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?
ruby-on-rails
ruby
sidekiq
Can Can
fuente
fuente
include 'sidekiq'
antesrequire 'sidekiq'
antesRespuestas:
De acuerdo con este problema en Github: https://github.com/mperham/sidekiq/issues/1732 ahora necesita
fuente
Puede hacer lo que dice sobre el problema 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 }
fuente
redis-cli flushdb
si está ejecutando redis en un servidor separado de su servidor rails. Me preguntaba por quéredis-cli flushdb
no funcionó hasta que recordé que necesitaba incluir argumentos de host y puerto.Borrar comandos de trabajos de Sidekiq:
fuente
Sidekiq::Queue.all.map(&:clear)
... Útil cuando sincroniza su base de datos local con el prod 😅A partir del último Sidekiq, hazlo explotar:
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
fuente
invalid byte sequence in US-ASCII (ArgumentError)
a ejecutarq.💣
: /También puedes usar
redis-cli flushall
fuente
Utilice el corredor Rails en una línea
fuente
Todas las tareas de Sidekiq se guardan en "Redis".
Puedes limpiar "Redis" con este comando
fuente
Puede usar esto para borrar todos los trabajos
fuente
Si desea eliminar trabajos de colas específicas, intente:
Lea todo sobre sidekiq y los comandos importantes de la consola: https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
fuente
fuente
Me di cuenta de que
Sidekiq.redis { |conn| conn.flushdb }
elimina todas las claves de la base de datos de redis. Existe una forma más segura de borrar todas las colas de sidekiq usandoredis-cli
:Lo mismo se puede lograr con la API de Sidekiq (consulte la respuesta de Ravi Prakash Singh )
fuente