Używam sidekiq do zadań w tle w aplikacji Rails. Teraz liczba miejsc pracy rośnie, więc chcę usunąć wszystkie zadania. Wypróbowałem następujące polecenie w konsoli
Sidekiq::Queue.new.clear
ale dawał następujący błąd.
NameError: uninitialized constant Sidekiq::Queue
Jak usunąć wszystkie zadania z sidekiqa?
ruby-on-rails
ruby
sidekiq
Może może
źródło
źródło
include 'sidekiq'
wcześniejrequire 'sidekiq'
wcześniejOdpowiedzi:
Zgodnie z tym wydaniem na Github: https://github.com/mperham/sidekiq/issues/1732 musisz teraz
źródło
Możesz zrobić to, co mówi w sprawie 1077 lub jak opisano na tym blogu na noobsippets
Obaj sugerują wykonanie następujących czynności i można to zrobić na konsoli szynowej:
Sidekiq.redis { |conn| conn.flushdb }
źródło
redis-cli flushdb
przypadku uruchamiania redis na innym serwerze niż serwer railsowy. Zastanawiałem się, dlaczegoredis-cli flushdb
nie działa, dopóki nie przypomniałem sobie, że muszę dołączyć argumenty hosta i portu.Wyczyść polecenia Sidekiq Jobs:
źródło
Sidekiq::Queue.all.map(&:clear)
... Przydatne podczas synchronizowania bazy danych regionalnych z produktem 😅Od ostatniego Sidekiqa, po prostu wysadź to w powietrze:
Tak, polecenie wyczyszczenia wszystkiego jest dosłownie emoji bomby. Działa również dla
Sidekiq::RetrySet
.Lub jeśli nie jesteś zabawny, możesz użyć
q.clear
źródło
invalid byte sequence in US-ASCII (ArgumentError)
za wykonanieq.💣
: /Możesz także użyć
redis-cli flushall
źródło
Użyj prowadnicy Rails w jednej linii
źródło
Wszystkie zadania Sidekiq są zapisywane w „Redis”.
Za pomocą tego polecenia można wyczyścić „Redis”
źródło
Możesz użyć tego do usunięcia wszystkich zadań
źródło
Jeśli chcesz usunąć zadania z określonych kolejek, spróbuj:
Przeczytaj wszystko o sidekiq i ważnych poleceniach konsoli - https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
źródło
źródło
Zdałem sobie sprawę, że
Sidekiq.redis { |conn| conn.flushdb }
usuwa wszystkie klucze z bazy danych redis. Istnieje bezpieczniejszy sposób na wyczyszczenie wszystkich kolejek sidekiq za pomocąredis-cli
:To samo można osiągnąć dzięki Sidekiq API (patrz odpowiedź Ravi Prakash Singh )
źródło