Estou usando o sidekiq para tarefas em segundo plano no aplicativo Rails. Agora o número de empregos aumenta, então quero eliminar todos os empregos. Eu tentei o seguinte comando no console
Sidekiq::Queue.new.clear
mas estava dando o seguinte erro.
NameError: uninitialized constant Sidekiq::Queue
Como faço para limpar todos os trabalhos do sidekiq?
ruby-on-rails
ruby
sidekiq
Pode, pode
fonte
fonte
include 'sidekiq'
antesrequire 'sidekiq'
antesRespostas:
De acordo com este problema no Github: https://github.com/mperham/sidekiq/issues/1732 você agora precisa
fonte
Você pode fazer o que está escrito na questão 1077 ou conforme relatado neste blog em noobsippets
Ambos sugerem que façamos o seguinte, e pode ser feito no console do trilho:
Sidekiq.redis { |conn| conn.flushdb }
fonte
redis-cli flushdb
se você estiver executando o redis em um servidor separado do servidor Rails. Fiquei me perguntando porredis-cli flushdb
que não funcionou até que lembrei que precisava incluir argumentos de host e porta.Comandos Clear Sidekiq Jobs:
fonte
Sidekiq::Queue.all.map(&:clear)
... Útil quando você sincroniza seu banco de dados local com o prod 😅No último Sidekiq, basta explodi-lo:
Sim, o comando para limpar tudo é literalmente um emoji de bomba. Também funciona para
Sidekiq::RetrySet
.Ou se você não é divertido, pode usar
q.clear
fonte
invalid byte sequence in US-ASCII (ArgumentError)
a executarq.💣
: /Você também pode usar
redis-cli flushall
fonte
Use Rails runner em uma linha
fonte
Todas as tarefas do Sidekiq são salvas no "Redis".
Você pode limpar o "Redis" com este comando
fonte
Você pode usar isso para limpar todos os trabalhos
fonte
Se você deseja excluir trabalhos de filas específicas, tente:
Leia tudo sobre sidekiq e comandos de console importantes- https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
fonte
fonte
Percebi que
Sidekiq.redis { |conn| conn.flushdb }
remove todas as chaves do banco de dados redis. Há uma maneira mais segura de limpar todas as filas sidekiq usandoredis-cli
:O mesmo pode ser alcançado com a API Sidekiq (veja a resposta de Ravi Prakash Singh )
fonte