मैं एक मल्टीप्लेयर गेम पर काम कर रहा हूं और इसे एक संदेश कतार की आवश्यकता है (यानी, संदेश, संदेश, कोई डुप्लीकेट या हटाए गए संदेशों को मानते हुए कि कोई अप्रत्याशित कैश बेदखल नहीं है)।Memcache- आधारित संदेश कतार?
- MemcacheQ: http://memcachedb.org/memcacheq/
- स्टार्लिंग: http://rubyforge.org/projects/starling/
- Depcached: http://www.marcworrell.com/article-2287-en.html
- गौरैया: यहाँ मेम्कैश आधारित कतारों मैं के बारे में पता कर रहा हूँ रहे हैं http://code.google.com/p/sparrow/
मैं अवधारणा सीखा this blog post से मेमकेचे कतार का:
सभी संदेश एक पूर्णांक के साथ कुंजी के रूप में सहेजे गए हैं। एक कुंजी है जिसमें अगली कुंजी है और जिसकी कतार में सबसे पुराना संदेश है। इन तक पहुंचने के लिए वृद्धि/कमी विधि का उपयोग इसके परमाणु के रूप में किया जाता है, इसलिए दो कुंजी हैं जो ताले के रूप में कार्य करती हैं। वे बढ़ते हैं, और यदि वापसी मूल्य 1 है तो प्रक्रिया में ताला है, अन्यथा यह बढ़ती रहती है। एक बार प्रक्रिया समाप्त होने के बाद यह मान वापस 0 पर सेट करता है। सरल लेकिन प्रभावी। एक चेतावनी यह है कि पूर्णांक अतिप्रवाह होगा, इसलिए वहां कुछ तर्क है जो उस सीमा के करीब होने के बाद प्रयुक्त कुंजी को 1 पर सेट करता है। चूंकि वृद्धि कार्य परमाणु है, लॉक केवल तभी जरूरी है जब दो या दो से अधिक memcaches का उपयोग किया जाता है (अनावश्यकता के लिए), उन्हें सिंक में रखने के लिए।
मेरा प्रश्न है, क्या एक memcache- आधारित संदेश कतार सेवा है जो ऐप इंजन पर चल सकती है?
मुझे उम्मीद है कि कैश में वस्तुओं की समाप्ति निष्क्रियता पर आधारित होगी, इसलिए यदि कतार जीवनकाल आप कहते हैं तो आप शायद ठीक होंगे। यद्यपि उस कथन में बहुत सारे क्वालीफायर हैं, इसलिए आपको निश्चित रूप से कतार में खोए गए सामानों को संभालने की आवश्यकता होगी। –
मुझे GAE के साथ एक संदेश कतार का उपयोग करने की भी आवश्यकता है, लेकिन मुझे GAE के साथ उपर्युक्त memcache आधारित कतार सेवाओं (MemcacheQ, स्पैरो इत्यादि) को कनेक्ट करने के बारे में कोई जानकारी नहीं है, क्योंकि GAE केवल जावा और पायथन का समर्थन करता है, इसलिए मैं चाहता हूं इस पर किसी भी विचार को जानना पसंद है। अमेज़ॅन एसक्यूएस के अलावा अन्य संदेश कतार सेवाओं का उपयोग हम GAE के साथ कर सकते हैं? –