Ich verwende Sidekiq für Hintergrundaufgaben in der Rails-Anwendung. Jetzt wird die Anzahl der Jobs größer, daher möchte ich alle Jobs löschen. Ich habe den folgenden Befehl in der Konsole versucht
Sidekiq::Queue.new.clear
aber es gab folgenden Fehler.
NameError: uninitialized constant Sidekiq::Queue
Wie lösche ich alle Jobs von Sidekiq?
ruby-on-rails
ruby
sidekiq
Can Can Can
quelle
quelle
include 'sidekiq'
vorherrequire 'sidekiq'
vorherAntworten:
Laut diesem Problem auf Github: https://github.com/mperham/sidekiq/issues/1732 müssen Sie jetzt
quelle
Sie können tun, was in der Ausgabe 1077 steht oder wie in diesem Blog unter noobsippets berichtet
Beide schlagen vor, dass wir Folgendes tun und dies auf der Rails-Konsole tun können:
Sidekiq.redis { |conn| conn.flushdb }
quelle
redis-cli flushdb
wenn Sie Redis auf einem von Ihrem Rails-Server getrennten Server ausführen. Ich fragte mich, warumredis-cli flushdb
es nicht funktionierte, bis ich mich daran erinnerte, dass ich Host- und Port-Argumente einschließen musste.Sidekiq Jobs-Befehle löschen:
quelle
Sidekiq::Queue.all.map(&:clear)
... Nützlich, wenn Sie Ihre Gebietsschema-Datenbank mit dem Produkt 😅Ab dem neuesten Sidekiq einfach in die Luft jagen:
Ja, der Befehl, alles zu löschen, ist buchstäblich ein Bomben-Emoji. Funktioniert auch für
Sidekiq::RetrySet
.Oder wenn Sie keinen Spaß haben, können Sie verwenden
q.clear
quelle
invalid byte sequence in US-ASCII (ArgumentError)
ausgeführtq.💣
: /Sie können auch verwenden
redis-cli flushall
quelle
Verwenden Sie den Rails Runner in einer Zeile
quelle
Alle Sidekiq-Aufgaben werden in "Redis" gespeichert.
Sie können "Redis" mit diesem Befehl bereinigen
quelle
Sie können dies zum Löschen aller Jobs verwenden
quelle
Wenn Sie Jobs aus bestimmten Warteschlangen löschen möchten, versuchen Sie:
Lesen Sie alles über Sidekiq und wichtige Konsolenbefehle - https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
quelle
quelle
Mir wurde klar, dass
Sidekiq.redis { |conn| conn.flushdb }
alle Schlüssel aus der Redis-Datenbank entfernt werden. Es gibt eine sicherere Möglichkeit, alle Sidekiq-Warteschlangen zu löschen, indem Sieredis-cli
:Dasselbe kann mit der Sidekiq-API erreicht werden (siehe Antwort von Ravi Prakash Singh ).
quelle