ऐसा करने के कम से कम दो तरीके हैं।
जब आप बोटो में कोई संदेश पढ़ते हैं, तो आपको एक संदेश ऑब्जेक्ट या कुछ सबक्लास प्राप्त होता है। संदेश ऑब्जेक्ट में "विशेषताएँ" फ़ील्ड है जो एक नियम है जिसमें एसक्यूएस द्वारा ज्ञात सभी संदेश विशेषताओं को शामिल किया गया है। एसक्यूएस ट्रैक की चीजों में से एक संदेश लगभग पढ़ने के अनुमानित # बार है। इसलिए, आप इस मान का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि संदेश हटाया जाना चाहिए या नहीं, लेकिन आपको मूल्य की "अनुमानित" प्रकृति के साथ सहज रहना होगा।
वैकल्पिक रूप से, आप किसी भी प्रकार के डेटाबेस में संदेश आईडी रिकॉर्ड कर सकते हैं और प्रत्येक बार जब आप संदेश पढ़ते हैं तो डेटाबेस में गिनती फ़ील्ड बढ़ा सकते हैं। यह एक साधारण पायथन निर्देश में किया जा सकता है यदि संदेशों को हमेशा एक ही प्रक्रिया में पढ़ा जा रहा है या इसे सरल डीबी जैसे कुछ में किया जा सकता है यदि आपको प्रक्रियाओं में रीडिंग रिकॉर्ड करने की आवश्यकता है।
उम्मीद है कि मदद करता है।
>>> import boto.sqs
>>> c = boto.sqs.connect_to_region()
>>> q = c.lookup('myqueue')
>>> messages = c.receive_message(q, num_messages=1, attributes='All')
>>> messages[0].attributes
{u'ApproximateFirstReceiveTimestamp': u'1365474374620',
u'ApproximateReceiveCount': u'2',
u'SenderId': u'419278470775',
u'SentTimestamp': u'1365474360357'}
>>>
धन्यवाद। मैंने बोटो दस्तावेज के माध्यम से स्किम किया है लेकिन किसी संदेश की गिनती प्राप्त करने के लिए कोई सुराग नहीं मिला। क्या तुम जानते हो यह कहां है? एक साधारण स्थानीय डेटाबेस होने के तरीके से इस मुद्दे को प्रबंधित करने का मेरा वैकल्पिक तरीका है, लेकिन पहले मैं इसे सरल रखना चाहूंगा-जैसे गिनती प्राप्त करना- यदि संभव हो .. – huzeyfe
क्या आप एक वाक्यविन्यास उदाहरण जोड़ सकते हैं? जब मैं एक से अधिक बार एक संदेश पढ़ता हूं और message_instance.attributes को देखता हूं तो मुझे बस एक खाली शब्दकोश मिलता है। – tponthieux