web-dev-qa-db-fra.com

Comment effacer tous les travaux de sidekiq?

J'utilise sidekiq pour les tâches en arrière-plan dans l'application Rails. Maintenant, le nombre de tâches devient plus important. Je souhaite donc supprimer toutes les tâches. J'ai essayé la commande suivante dans la console

Sidekiq::Queue.new.clear

mais c'était donner l'erreur suivante.

NameError: uninitialized constant Sidekiq::Queue 

Comment puis-je effacer tous les travaux de sidekiq?

96
Can Can

Selon ce numéro sur Github: https://github.com/mperham/sidekiq/issues/1732 vous devez maintenant

require 'sidekiq/api'
57
Jay

Vous pouvez faire ce qui est dit sur le numéro 1077 ou comme indiqué dans ce blog à noobsippets

Les deux suggèrent que nous fassions ce qui suit et que nous pouvons le faire sur la console Rails:

Sidekiq.redis { |conn| conn.flushdb }

182
jonathanccalixto

Effacer les commandes 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
60
rusllonrails

À compter de la dernière édition de Sidekiq, il suffit de l'exploser:

require 'sidekiq/api'

q = Sidekiq::Queue.new
q.????

Oui, la commande de tout effacer est littéralement une bombe emoji. Fonctionne également pour Sidekiq::RetrySet.

Ou si vous n'êtes pas amusant, vous pouvez utiliser q.clear

25
Xavier
redis-cli flushdb

Vous pouvez aussi utiliser redis-cli flushall

17
Sai Ram Reddy

Utilisez Rails coureur sur une ligne

Rails runner 'Sidekiq.redis { |conn| conn.flushdb }'
10
fangxing

Toutes les tâches Sidekiq sont enregistrées dans "Redis".

Vous pouvez nettoyer "Redis" avec cette commande

redis-cli flushall
5
Andriy Kondzolko

Vous pouvez l'utiliser pour effacer tous les travaux

require 'sidekiq/api'

Sidekiq::Queue.all.each(&:clear)
3