RabbitMQ, yaygın olarak kullanılan açık kaynaklı bir mesaj kuyruğu sistemidir. Bu makalede, RabbitMQ kuyruğundaki bekleyen mesaj sayısını öğrenmek için Python ve RabbitMQ Management Plugin kullanarak nasıl bir işlem yapabileceğinizi anlatacağım.
Öncelikle, RabbitMQ Management Plugin’i etkinleştirmeniz gerekmektedir. Bu, aşağıdaki komutla yapılabilir:
rabbitmq-plugins enable rabbitmq_management
Ardından, Python requests
kütüphanesini kullanarak RabbitMQ HTTP API’sine istek göndererek bekleyen mesaj sayısını alabilirsiniz.
import requests import json def get_message_cnt(): rabbitmq_host = "your_rabbitmq_host" # RabbitMQ sunucusunun IP adresini veya adını girin rabbitmq_port = 15672 rabbitmq_user = "your_rabbitmq_user" # RabbitMQ kullanıcı adını girin rabbitmq_password = "your_rabbitmq_password" # RabbitMQ şifresini girin queue_name = "testkuyrugu" # Kuyruk adını girin vhost = "/" # Varsayılan değer olarak kök sanal host'u kullanın vhost_encoded = "%2f" url = f"http://{rabbitmq_host}:{rabbitmq_port}/api/queues/{vhost_encoded}/{queue_name}" response = requests.get(url, auth=(rabbitmq_user, rabbitmq_password)) if response.status_code == 200: queue_info = json.loads(response.text) message_count = queue_info["messages"] print(f"Kuyruktaki bekleyen mesaj sayısı: {message_count}") return int(message_count) else: print("Hata: Kuyruk bilgileri alınamadı.") print(response.text) print(url) return 0 # Kullanım örneği message_count = get_message_cnt() print(f"Toplam bekleyen mesaj sayısı: {message_count}")
Kod, belirtilen RabbitMQ sunucusuna ve kuyruğa bağlanır ve bekleyen mesaj sayısını döndürür. Kodu çalıştırmadan önce, rabbitmq_host
, rabbitmq_user
ve rabbitmq_password
değişkenlerini kendi yapılandırmanıza göre güncellemeniz gerekir.
get_message_cnt
fonksiyonu, RabbitMQ sunucusundan kuyruk bilgilerini alır, bekleyen mesaj sayısını ekrana yazdırır ve döndürür. Eğer kuyruk bilgileri alınamazsa, hata mesajları yazdırılır ve 0 döndürülür. Bu işlem, RabbitMQ kuyruğundaki bekleyen mesaj sayısını öğrenmek için kullanılabilir.