Saya menggunakan sidekiq untuk tugas latar belakang di aplikasi Rails. Sekarang jumlah pekerjaan menjadi lebih banyak, jadi saya ingin menghapus semua pekerjaan. Saya mencoba perintah berikut di konsol
Sidekiq::Queue.new.clear
tapi itu memberikan kesalahan berikut.
NameError: uninitialized constant Sidekiq::Queue
Bagaimana cara menghapus semua pekerjaan dari sidekiq?
ruby-on-rails
ruby
sidekiq
Bisa bisa
sumber
sumber
include 'sidekiq'
sebelumnyarequire 'sidekiq'
sebelumnyaJawaban:
Menurut masalah ini di Github: https://github.com/mperham/sidekiq/issues/1732 Anda sekarang perlu
sumber
Anda dapat melakukan apa yang dikatakan pada masalah 1077 atau seperti yang dilaporkan di blog ini di noobsippets
Keduanya menyarankan kami melakukan hal berikut, dan dapat dilakukan di konsol rel:
Sidekiq.redis { |conn| conn.flushdb }
sumber
redis-cli flushdb
jika Anda menjalankan redis di server terpisah dari server rel Anda. Saya bertanya-tanya mengaparedis-cli flushdb
tidak berhasil sampai saya ingat saya perlu memasukkan argumen host dan port.Hapus perintah Sidekiq Jobs:
sumber
Sidekiq::Queue.all.map(&:clear)
... Berguna bila Anda menyinkronkan db lokal Anda dengan prod 😅Untuk Sidekiq terbaru, ledakkan saja:
Ya, perintah untuk menghapus semua secara harfiah adalah emoji bom. Juga bekerja untuk
Sidekiq::RetrySet
.Atau jika Anda tidak menyenangkan, Anda dapat menggunakannya
q.clear
sumber
invalid byte sequence in US-ASCII (ArgumentError)
mengeksekusiq.💣
: /Anda juga bisa menggunakan
redis-cli flushall
sumber
Gunakan pelari Rails dalam satu baris
sumber
Semua tugas Sidekiq disimpan di "Redis".
Anda dapat membersihkan "Redis" dengan perintah ini
sumber
Anda dapat menggunakan ini untuk membersihkan semua pekerjaan
sumber
Jika Anda ingin menghapus pekerjaan dari antrian tertentu coba:
Baca semua tentang sidekiq dan perintah konsol penting- https://medium.com/@shashwat12june/all-you-need-to-know-about-sidekiq-a4b770a71f8f
sumber
sumber
Saya menyadari bahwa
Sidekiq.redis { |conn| conn.flushdb }
menghapus semua kunci dari database redis. Ada cara yang lebih aman untuk menghapus semua antrian sidekiq menggunakanredis-cli
:Hal yang sama dapat dicapai dengan API Sidekiq (lihat jawaban Ravi Prakash Singh )
sumber