2009-07-16 24 views
8

को लागू करने का सबसे अच्छा तरीका क्या है संदेश-उन्मुख मिडलवेयर जो लगातार प्राथमिकता संदेशों (जैसे एएमक्यूपी) का समर्थन नहीं करता है, प्राथमिकता खपत को लागू करने का सबसे अच्छा तरीका क्या है जब कतारों में केवल FIFO semantics हैं ? सामान्य उपयोग केस एक ऐसी प्रणाली होगी जिसमें उपभोक्ताओं को कम प्राथमिकता वाले संदेशों से पहले उच्च प्राथमिकता के संदेश प्राप्त होते हैं जब कतार में संदेशों का एक बड़ा बैकलॉग मौजूद होता है।फीफो क्यूईंग सिस्टम में, प्राथमिकता संदेश

+2

आप एकाधिक कतारों मिल सकता है? यदि ऐसा है तो मैं उच्च प्राथमिकता संदेशों के लिए एक अलग कतार रखने का सुझाव दूंगा जो कि मानक कतार से पहले पूछताछ की जाती है, जिसका उपयोग प्राथमिकता कतार खाली होने पर ही किया जाता है। मुझे नहीं पता कि यह आपके परिदृश्य के साथ फिट बैठता है लेकिन यह मेरा पहला विचार था। – CodeFusionMobile

+0

मैं CSharpWithJava से सहमत हूं। मैं इस समय एक बड़ा संदेश सेवा ऐप्लिकेशन कर रहा हूँ, और मुझे लगता है कि अपने प्रश्नों से, आप कई कतारों की जरूरत है, तो आप एक कम pri कतार में कम pri संदेशों ऑफलोड कर सकते हैं, और तुरंत उच्च pri पढ़ें। –

उत्तर

10

किसी दिए गए एकल पंक्ति के लिए केवल फीफो समर्थन को देखते हुए, आप निश्चित रूप से या तो कई कतार, एक मध्यस्थ के परिचय, या एक अधिक जटिल उपभोक्ता के लिए होगा।

एकाधिक कतारों तरीके के एक जोड़े में नियंत्रित किया जा सकता है। निर्माता और उपभोक्ता उनके बीच दो कतार, एक उच्च प्राथमिकता के लिए, और पृष्ठभूमि कार्यों के लिए एक के लिए सहमत हो सकता है।

अपने निर्माता एक भी कतार में विवश है, लेकिन आप उपभोक्ता पर नियंत्रण है, तो रास्ते में एक प्रशंसक बाहर रूटर शुरू करने पर विचार करें। तो निर्माता-> राउटर एक एकल कतार है, और राउटर के बाद उपभोक्ता को दो कतार हैं।

इससे निपटने का एक और तरीका, जो कि आदर्श से कम है, आपके उपभोक्ता को कतार के सामने एक थ्रेड स्पिन करना होगा, फिर आंतरिक रूप से कार्य को प्रेषित करना होगा। ऊपर राउटर संस्करण की तरह कुछ, लेकिन एक ऐप के अंदर। आपके ऐप के अंदर उड़ान में कई संदेश होने का नकारात्मक पक्ष है, जो विफलता की स्थिति में वसूली को जटिल कर सकता है।

, प्रभावी रूप से कम प्राथमिकता घटनाओं, जो कुछ भी वे कर रहे हैं की भुखमरी पर विचार करना है, तो उनमें से कुछ कार्रवाई की जानी चाहिए, भले ही उच्च-प्राथमिकता घटनाओं अभी भी के बारे में फांसी हैं मत भूलना।

+1

यह उतना ही कम है जितना हमने काम पर एक परियोजना के लिए इस रणनीति को लागू किया है। एक श्रेणीबद्ध प्राथमिकता प्रणाली के लिए एकाधिक कतार। हम भुखमरी के बारे में ज्यादा चिंता नहीं करते हैं क्योंकि हम ऐसे मामलों में उच्च प्राथमिकता वाले महत्वपूर्ण निम्न प्राथमिकता संदेशों को पुन: प्रकाशित कर सकते हैं; अनावश्यक रूप से काम को संभाला जाता है, अधिकांश भाग के लिए, इसे अनुमति देने के लिए बेवकूफ रूप से। – quaternion