सरल सवाल, लेकिन Google या Pika ओपन सोर्स कोड ने मदद नहीं की। क्या पिका में मौजूदा कतार आकार (आइटम काउंटर) से पूछताछ करने का कोई तरीका है?पिका में क्यूई आकार प्राप्त करें (एएमक्यूपी पायथन)
उत्तर
एएमक्यूपी प्रोटोकॉल में कतार आकार प्राप्त करने के दो तरीके हैं। आप या तो Queue.Declare या Basic.Get का उपयोग कर सकते हैं।
यदि आप मूल का उपयोग करते हुए संदेशों का उपभोग कर रहे हैं। कॉन्स्यूम, तो आप तब तक यह जानकारी नहीं प्राप्त कर सकते जब तक कि आप डिस्कनेक्ट (टाइमआउट) और कतार को दोबारा नहीं हटाते, या फिर एक संदेश प्राप्त करें लेकिन इसे न लें। एएमक्यूपी के नए संस्करणों में आप सक्रिय रूप से संदेश की आवश्यकता कर सकते हैं।
पिका के लिए, मुझे विशिष्ट जानकारी नहीं है लेकिन एएमक्यूपी के लिए पायथन क्लाइंट मेरी तरफ कांटा रहा है। अक्सर आपको आवश्यक जानकारी प्राप्त करने के लिए कक्षाओं को बंदरगाह करने की आवश्यकता होगी, या कतार उपभोक्ता को समय-समय पर अनुमति देने के लिए ताकि आप रिकॉर्डिंग आंकड़ों जैसे आवधिक अंतराल पर अन्य चीजें कर सकें या पता लगाएं कि कतार में कितने संदेश हैं।
इसके आसपास एक और तरीका छोड़ना है और sudo rabbitmqctl list_queues -p my_vhost
चलाने के लिए पाइप क्लास का उपयोग करना है। फिर सभी कतारों के आकार को खोजने के लिए आउटपुट पार्स करें। यदि आप ऐसा करते हैं तो आपको सामान्य सूडो पासवर्ड न पूछने के लिए /etc/sudoers
कॉन्फ़िगर करने की आवश्यकता होगी।
मैं प्रार्थना करता हूं कि अधिक पिका अनुभव वाले किसी और व्यक्ति ने यह इंगित करके जवाब दिया कि आप उन सभी चीजों को कैसे कर सकते हैं जिनका मैंने उल्लेख किया था, इस मामले में मैं पिका डाउनलोड करूंगा और टायर लाऊंगा। लेकिन अगर ऐसा नहीं होता है और आपको पिका कोड को बंदरगाह करने में कठिनाई हो रही है, तो haigha
पर एक नज़र डालें। मैंने पाया कि उनके कोड अन्य पायथन एएमक्यूपी क्लाइंट पुस्तकालयों की तुलना में अधिक सरल हैं क्योंकि वे एएमक्यूपी प्रोटोकॉल के करीब रहते हैं।
मुझे पता है कि यह प्रश्न थोड़ा पुराना है, लेकिन यहां यह पिका के साथ ऐसा करने का एक उदाहरण है।
एएमक्यूपी और खरगोश एमक्यू के संबंध में, यदि आपने पहले से ही कतार घोषित कर दी है, तो आप passive flag के साथ कतार फिर से घोषित कर सकते हैं और अन्य सभी कतार पैरामीटर को समान रूप से रख सकते हैं। इस घोषणा की प्रतिक्रिया declare-ok में कतार में संदेशों की संख्या शामिल होगी। आप message_count
सदस्य से संदेशों की संख्या प्राप्त
<Method(['frame_type=1', 'channel_number=1', "method=<Queue.DeclareOk(['queue=test', 'message_count=0', 'consumer_count=0'])>"])>
<Method(['frame_type=1', 'channel_number=1', "method=<Queue.DeclareOk(['queue=test', 'message_count=0', 'consumer_count=0'])>"])>
Messages in queue 0
:
import pika
def on_callback(msg):
print msg
params = pika.ConnectionParameters(
host='localhost',
port=5672,
credentials=pika.credentials.PlainCredentials('guest', 'guest'),
)
# Open a connection to RabbitMQ on localhost using all default parameters
connection = pika.BlockingConnection(parameters=params)
# Open the channel
channel = connection.channel()
# Declare the queue
channel.queue_declare(
callback=on_callback,
queue="test",
durable=True,
exclusive=False,
auto_delete=False
)
# ...
# Re-declare the queue with passive flag
res = channel.queue_declare(
callback=on_callback,
queue="test",
durable=True,
exclusive=False,
auto_delete=False,
passive=True
)
print 'Messages in queue %d' % res.method.message_count
यह निम्न प्रिंट होगा:
यहाँ पिका 0.9.5 के साथ एक उदाहरण है।
बहुत बहुत धन्यवाद। आपका उत्तर मेरे लिए मदद करता है। – Evgeniy
यहां बताया गया है कि आप पिका का उपयोग करके कतार लंबाई कैसे प्राप्त कर सकते हैं (मान लें कि आप डिफ़ॉल्ट उपयोगकर्ता और स्थानीयहोस्ट पर पासवर्ड का उपयोग कर रहे हैं) अपनी कतार नाम से q_name को प्रतिस्थापित करें।
import pika
connection = pika.BlockingConnection()
channel = connection.channel()
q = channel.queue_declare(q_name)
q_len = q.method.message_count
- 1. पिका
- 2. पायथन। किसी ऑब्जेक्ट का आकार प्राप्त करें
- 3. क्यूई
- 4. ऑडियो क्यूई ट्रिमिंग और बफर आकार
- 5. क्यूई
- 6. क्यूई
- 7. थ्रेड क्यूई
- 8. ज़ीरोएमक्यू क्यूई
- 9. .NET आकार बदलें: पुराना आकार प्राप्त करें?
- 10. पिका और गीवेंट
- 11. ऑडियो क्यूई
- 12. एएमक्यूपी ब्रोकर (RabbitMQ)
- 13. एएमक्यूपी बनाम वेबस्पेयर एमक्यू
- 14. एएमक्यूपी + एंड्रॉइड लाइब्रेरी
- 15. फ़ोल्डर का आकार प्राप्त करें
- 16. संवाद आकार कैसे प्राप्त करें?
- 17. डीडीएस बनाम एएमक्यूपी बनाम ज़ीरोएमक्यू
- 18. पायथन में होम निर्देशिका कैसे प्राप्त करें?
- 19. संदेश क्यूई एक बार
- 20. पायथन यूनिकोड स्ट्रिंग आकार
- 21. पायथन-अनुरोधों का उपयोग करके फ़ाइल का आकार प्राप्त करें, जबकि केवल शीर्षलेख प्राप्त करना
- 22. खरगोश एमक्यू, पिका और पुन: कनेक्शन रणनीति
- 23. पायथन में लूप वृद्धि पर अधिक नियंत्रण कैसे प्राप्त करें?
- 24. प्राथमिकता क्यूई/हीप अपडेट
- 25. सिंक्रोनस क्यूई एक्स एक्सचेंजर
- 26. एनएसओपरेशन क्यूई आईफोन
- 27. इसे आकार देने के बाद वास्तविक छवि आकार प्राप्त करें
- 28. पायथन में शब्दकोश के लिए प्रारंभिक आकार कैसे सेट करें?
- 29. पायथन में एक फ्लोट के आकार की जांच कैसे करें?
- 30. ऐरे का आकार कैसे प्राप्त करें?
सुडो rabbitmqctl list_queues -p my_vhost चाल के लिए धन्यवाद, मैं कोशिश करूँगा। – Sebastian