J'utilise sidekiq pour les tâches d'arrière-plan dans l'application Rails. Maintenant, le nombre d'emplois augmente, donc je veux effacer tous les emplois. J'ai essayé la commande suivante dans la console
Sidekiq::Queue.new.clear
mais il donnait l'erreur suivante.
NameError: uninitialized constant Sidekiq::Queue
Comment effacer tous les jobs de sidekiq?
ruby-on-rails
ruby
sidekiq
Peut Can
la source
la source
include 'sidekiq'
avantrequire 'sidekiq'
avantRéponses:
Selon ce numéro sur Github: https://github.com/mperham/sidekiq/issues/1732, vous devez maintenant
la source
Vous pouvez faire ce qu'il dit sur le numéro 1077 ou comme indiqué dans ce blog à noobsippets
Les deux suggèrent que nous faisons ce qui suit, et peut être fait sur la console de rails:
Sidekiq.redis { |conn| conn.flushdb }
la source
redis-cli flushdb
si vous exécutez redis sur un serveur distinct de votre serveur rails. Je me demandais pourquoiredis-cli flushdb
cela ne fonctionnait pas jusqu'à ce que je me souvienne que je devais inclure des arguments d'hôte et de port.Effacer les commandes Sidekiq Jobs:
la source
Sidekiq::Queue.all.map(&:clear)
... Utile lorsque vous synchronisez votre base de données locale avec le prod 😅À partir du dernier Sidekiq, faites-le exploser:
Oui, la commande pour tout effacer est littéralement un emoji de bombe. Fonctionne également pour
Sidekiq::RetrySet
.Ou si vous n'êtes pas amusant, vous pouvez utiliser
q.clear
la source
invalid byte sequence in US-ASCII (ArgumentError)
à exécuterq.💣
: /Vous pouvez aussi utiliser
redis-cli flushall
la source
Utilisez Rails Runner sur une seule ligne
la source
Toutes les tâches Sidekiq sont enregistrées dans "Redis".
Vous pouvez nettoyer "Redis" par cette commande
la source
Vous pouvez l'utiliser pour effacer tous les travaux
la source
Si vous souhaitez supprimer des travaux de files d'attente spécifiques, essayez:
Pour tout savoir sur sidekiq et les commandes de console importantes - https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
la source
la source
J'ai réalisé que cela
Sidekiq.redis { |conn| conn.flushdb }
supprime toutes les clés de la base de données redis. Il existe un moyen plus sûr d'effacer toutes les files d'attente sidekiq en utilisantredis-cli
:La même chose peut être obtenue avec l'API Sidekiq (voir la réponse de Ravi Prakash Singh )
la source