2009-08-21 14 views
8

से प्राथमिकता से संदेश प्राप्त करना मैं अपनी प्राथमिकता निर्धारित करके एमएसएमक्यू में संदेश भेज रहा हूं। सी #एमएसएमक्यू

का उपयोग करके मुझे एमएसएमक्यू से संदेश उच्च प्राथमिकता प्राप्त हो सकता है?

जैसे कि हम प्राथमिकता कतार में मिलता है।

और एक बात और अधिक ..

लगता है देखते हैं तीन प्राथमिकता स्तर

0 - उच्च 1- मध्यम 2 - कम

कतार में अनुक्रम 2001122221111100

अब है अगर मैं उच्च प्राथमिकता (0) के साथ संदेश भेजता हूं जहां इसे रखा जाएगा ?? एमएसएमक्यू में प्राथमिकता निर्धारित करके। क्या यह वास्तविक प्राथमिकता कतार की तरह व्यवहार करेगा?

उत्तर

12

एमएसएमक्यू संदेशों की प्राथमिकता कतार का समर्थन करता है, हालांकि उसी प्राथमिकता के संदेश को अस्वीकार करते समय आगमन के क्रम में संभाला जाता है। उदाहरण के लिए, यदि आप 3 संदेश भेजते हैं, दो प्राथमिकता 7 और प्राथमिकता 0 में से एक है, तो प्राप्त प्राथमिकता 7 का पहला संदेश अस्वीकार कर दिया जाएगा, उसके बाद प्राथमिकता 7 के दूसरे संदेश को प्राप्त किया जाएगा, अंततः संदेश के बाद प्राथमिकता 0. आपको कतारबद्ध संदेशों को उनके प्राथमिकता क्रम में संसाधित करने के लिए कुछ भी विशेष नहीं करना चाहिए ... हालांकि केवल यह ध्यान रखें कि किसी भी प्राथमिकता का "सबसे पुराना" संदेश उसी प्राथमिकता के "नवीनतम" संदेश से पहले हटा दिया जाएगा। यह भी ध्यान दिया जाना चाहिए कि किसी भी लेनदेन संदेश उनकी प्राथमिकता, आईआईआरसी को अनदेखा करते हैं।

संपादित करें:

MSMQ प्राथमिकताओं का समर्थन करता है, वहीं यह वास्तव में एक प्राथमिकता कतार की तरह व्यवहार नहीं किया जाएगा। दोनों अलग-अलग एल्गोरिदम हैं, एमएसएमक्यू काफी जटिल हैं। जब आप किसी संदेश की प्राथमिकता निर्धारित करते हैं, न केवल सहायता उस संदेश को निर्धारित करता है जिसमें वह संदेश अस्वीकार कर दिया जाएगा, यह उस प्राथमिकता को भी प्रभावित करता है जिस पर संदेश प्रेषक/प्रकाशक से प्राप्तकर्ता/ग्राहक से एमएसएमक्यू सेवा के माध्यम से प्रचारित करेगा । मान लें कि आप तीन सबसे कम प्राथमिकताओं का उपयोग करें (MSMQ से 0 (सबसे कम) के लिए, 8 प्राथमिकताओं का समर्थन करता है 7 (उच्चतम)), इस परिदृश्य पर हो सकता है:

0 = कम, 1 = मध्यम, 2 = उच्च

0 @ 1:00 
2 @ 1:00 
0 @ 1:01 
1 @ 1:02 
1 @ 1:03 
0 @ 2:01 
2 @ 2:01 

रिसीवर निम्न क्रम में अपने कतार में संदेशों को कतार (यह मानते हुए कोई संदेश dequeued कर रहे हैं):

2 @ 1:00 
2 @ 2:01 
1 @ 1:02 
1 @ 1:03 
0 @ 1:00 
0 @ 1:01 
0 @ 2:01 
प्रेषक निर्दिष्ट समय पर दिए गए प्राथमिकताओं (: दूसरे मिनट) के साथ संदेश भेजता है

जब आप रिसीवर की कतार से संदेश संसाधित करते हैं, तो उन्हें प्राथमिकता के साथ-साथ प्राप्त समय दोनों में संसाधित किया जाएगा।

+0

मान लीजिए कि दो संदेश कम, उच्च हैं और "उच्चतम" प्राथमिकता वाला एक नया संदेश आता है। जहां इसे रखा जाएगा? और क्या यह संदेश पहले अस्वीकार कर दिया जाएगा? – Mohsan

+0

आपके संपादित प्रश्न के आधार पर, मुझे लगता है कि आपके पास प्राथमिकता मूल्य पिछड़े हैं। एमएसएमक्यू में, प्राथमिकता संख्या जितनी अधिक होगी, प्राथमिकता उतनी ही अधिक होगी। इससे 0 = कम, 1 = मध्यम, 2 = उच्च होगा। यदि आप एक अतिरिक्त "उच्चतम" प्राथमिकता चाहते थे, तो आपके पास 3 = उच्चतम होगा। यदि कोई संदेश प्राथमिकता 3 (उच्चतम) के साथ आता है, तो इसे किसी अन्य तीन सूचीबद्ध प्राथमिकताओं में से किसी भी अन्य संदेश से पहले, पहले अस्वीकार कर दिया जाना चाहिए। – jrista

+0

अंतिम नोट ... एमएसएमक्यू कभी प्राथमिकता कतार की तरह व्यवहार नहीं करेगा। एक प्राथमिकता कतार एमएसएमक्यू के संदेश ऑर्डरिंग की तुलना में एक बहुत ही सरल एल्गोरिदम है। एमएसएमक्यू संदेशों को हटाए जाने वाले संदेशों को कैसे प्रबंधित करता है, इस बारे में बेहतर विवरण के लिए कृपया मेरा अद्यतन उत्तर देखें। – jrista

संबंधित मुद्दे