Jika Anda tidak peduli dengan data dalam database manajemen; yaitu users
, vhosts
, messages
dll, dan tidak tentang lainnya queues
, maka Anda dapat reset
melalui commandline dengan menjalankan perintah berikut agar:
PERINGATAN: Selain antrian, ini juga akan menghapus semua users
dan vhosts
, Anda telah mengkonfigurasi di server RabbitMQ Anda; dan akan menghapus persistenmessages
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
The dokumentasi RabbitMQ mengatakan bahwa reset
perintah:
Mengembalikan node RabbitMQ ke status perawannya.
Menghapus node dari cluster mana pun yang dimilikinya, menghapus semua data dari database manajemen, seperti pengguna dan vhost yang dikonfigurasi, dan menghapus semua pesan yang ada.
Jadi berhati-hatilah saat menggunakannya.
Instal paket pika sebagai berikut
Instalasi bergantung pada paket pip dan git-core, Anda mungkin perlu menginstalnya terlebih dahulu.
Di Ubuntu:
Di Debian:
Di Windows: Untuk menginstal easy_install, jalankan Penginstal MS Windows untuk alat pengaturan
sumber
Di RabbitMQ versi> 3.0, Anda juga dapat menggunakan HTTP API jika plugin rabbitmq_management diaktifkan. Pastikan untuk mengatur tipe konten ke 'application / json' dan berikan vhost dan nama antrian:
IE Menggunakan curl dengan 'test' vhost dan nama antrian 'testqueue':
sumber
administrator
jika tidak, mereka tidak dapat menggunakan bagian tertentu dari API.$ curl -i -u 'user:pass' -H "content-type:application/json" -XDELETE 'http://localhost:15672/api/queues/vhostname/name.portal' HTTP/1.1 204 No Content Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) Date: Wed, 30 Jul 2014 11:23:47 GMT Content-Type: application/json Content-Length: 0
Namun antriannya masih tetap :( - ada ide?Ada rabbitmqadmin yang bagus untuk bekerja dari konsol.
Jika Anda ssh / masuk ke server tempat Anda memasang kelinci, Anda dapat mengunduhnya dari:
dan simpan ke / usr / local / bin / rabbitmqadmin
Lalu kamu bisa lari
Biasanya membutuhkan sudo.
Jika Anda ingin menghindari mengetik nama pengguna dan kata sandi, Anda dapat menggunakan config
Semua itu dengan asumsi Anda memiliki file ** /var/lib/rabbitmq/.rabbitmqadmin.conf** dan memiliki minumum telanjang
EDIT: Sebagai komentar dari @ user299709, mungkin berguna untuk menunjukkan bahwa pengguna harus ditandai sebagai 'administrator' pada kelinci. ( https://www.rabbitmq.com/management.html )
sumber
Ringkasan singkat untuk penghapusan antrian cepat dengan semua nilai default dari host yang menjalankan server RMQ:
Untuk menghapus semua antrian yang cocok dengan pola di vhost tertentu (misalnya berisi 'amq.gen' di root vhost):
sumber
Anda menegaskan bahwa antrian ada (dan membuatnya jika tidak) dengan menggunakan queue.declare . Jika Anda awalnya menyetel hapus otomatis ke salah, memanggil queue.declare lagi dengan autodelete true akan menghasilkan kesalahan lunak dan broker akan menutup saluran.
Anda perlu menggunakan queue.delete sekarang untuk menghapusnya.
Lihat dokumentasi API untuk detailnya:
Jika Anda menggunakan klien lain, Anda harus menemukan metode yang setara. Karena itu bagian dari protokol, itu harus ada di sana, dan itu mungkin bagian dari Channel atau yang setara.
Anda mungkin juga ingin melihat dokumentasi lainnya, khususnya bagian Memulai yang mencakup banyak kasus penggunaan umum.
Terakhir, jika Anda memiliki pertanyaan dan tidak dapat menemukan jawabannya di tempat lain, Anda harus mencoba memposting di milis Diskusi RabbitMQ . Pengembang melakukan yang terbaik untuk menjawab semua pertanyaan yang diajukan di sana.
sumber
Pilihan lainnya adalah mengaktifkan management_plugin dan menghubungkannya melalui browser. Anda dapat melihat semua antrian dan informasi tentang mereka. Anda dapat dan mudah menghapus antrian dari antarmuka ini.
sumber
Saya telah menggeneralisasi metode JavaScript / jQuery Piotr Stapp sedikit lebih jauh, merangkumnya menjadi sebuah fungsi dan menggeneralisasikannya sedikit.
Fungsi ini menggunakan RabbitMQ HTTP API untuk menanyakan antrian yang tersedia di suatu tempat
vhost
, dan kemudian menghapusnya berdasarkan pilihanqueuePrefix
:Setelah Anda menempelkan fungsi ini di konsol JavaScript browser Anda saat berada di halaman manajemen RabbitMQ, Anda dapat menggunakannya seperti ini:
Hapus semua antrian di '/' vhost
Hapus semua antrian di '/' vhost yang diawali dengan 'test'
Hapus semua antrian di 'dev' vhost yang diawali dengan 'foo'
Silakan gunakan ini dengan resiko Anda sendiri!
sumber
Plugin manajemen (antarmuka web) memberi Anda tautan ke skrip python. Anda dapat menggunakannya untuk menghapus antrian. Saya menggunakan pola ini untuk menghapus banyak antrian:
sumber
Saya menggunakan alias ini di
.profile
:dimana
qclean.py
memiliki kode berikut:Pada dasarnya, ini adalah versi iteratif dari kode Shweta B. Patil.
sumber
Install
dan buka http: // localhost: 15672 / # / queues jika Anda menggunakan localhost. kata sandi default
username: guest
,password: guest
dan pergi ke tab antrian dan hapus antrian.sumber
Semoga bisa membantu seseorang.
Saya mencoba potongan kode di atas tetapi saya tidak melakukan streaming apa pun.
sudo rabbitmqctl list_queues | awk '{print $1}' > queues.txt; for line in $(cat queues.txt); do sudo rabbitmqctl delete_queue "$line"; done
.Saya menghasilkan file yang berisi semua nama antrian dan mengulanginya baris demi baris untuk menghapusnya. Untuk loop,
while read ...
tidak melakukannya untuk saya. Itu selalu berhenti di nama antrian pertama.Juga, jika Anda ingin menghapus satu antrian, solusi di atas akan membantu (python, Java ...) dan juga
do sudo rabbitmqctl delete_queue queue_name
. Saya menggunakan,rabbitmqctl
bukanrabbitmqadmin
.sumber
Dengan plugin rabbitmq_management terinstal, Anda dapat menjalankan ini untuk menghapus semua antrean yang tidak diinginkan:
Mari kita hancurkan perintahnya:
rabbitmqctl list_queues -p vhost_name
akan mencantumkan semua antrian dan berapa banyak tugas yang mereka miliki saat ini.grep -v "fast\|medium\|slow"
akan memfilter antrian yang tidak ingin Anda hapus, katakanlah kita ingin menghapus setiap antrian tanpa kata cepat , sedang atau lambat .tr "[:blank:]" " "
akan menormalkan pembatas pada rabbitmqctl antara nama antrian dan jumlah tugas yang adacut -d " " -f 1
akan membagi setiap baris dengan spasi dan memilih kolom pertama (nama antrian)xargs -I {} curl -i -u guest:guest -H "content-type:application/json" -XDELETE http://localhost:15672/api/queues/<vhost>/{}
akan mengambil nama antrian dan akan mengaturnya ke tempat kita mengatur{}
karakter menghapus semua antrian yang tidak disaring dalam proses.Pastikan pengguna yang digunakan memiliki izin administrator.
sumber
Saya melakukannya dengan cara yang berbeda, karena saya hanya memiliki akses ke halaman web manajemen. Saya membuat "potongan" sederhana yang menghapus antrian di Javascript. Ini dia:
Semua antrian saya berformat: PREFIX_0001 hingga PREFIX_0XXX
sumber
Saya kesulitan menemukan jawaban yang sesuai dengan kebutuhan saya untuk menghapus antrian secara manual di rabbigmq. Oleh karena itu saya pikir perlu disebutkan di utas ini bahwa dimungkinkan untuk menghapus satu antrian tanpa
rabbitmqadmin
menggunakan perintah berikut:sumber