2013-03-01 10 views
6

मैं एक अजीब समस्या का सामना कर रहा हूँ। मेरे पास क्लाउड सेवा ए है जो पढ़ने के लिए किसी अन्य क्लाउड सेवा बी के लिए एक सेवा बस कतार में संदेश डालती है। क्लाउड सर्विस बी को यह करने के लिए लगभग एक सेकंड लग सकता है कि उसे क्या करना है, फिर यह क्लाउड सेवा ए के लिए एक कतार में एक संदेश वापस रखता है। जब क्लाउड सर्विस बी ऐसा करता है तो यह लगभग 1 - 10 सेकंड की देरी डालने के लिए अनुसूचितEnqueueTimeUtc का उपयोग करता है संदेश परAzure सेवा बस कतार ScheduledEnqueueTimeUtc विलंबित

पिछले शुक्रवार नीला आउटेज पूरी तरह से इस आवेदन नीचे लाया। जब मैं इसे ऑनलाइन वापस लाया, ScheduledEnqueueTimeUtc हमेशा कम से कम 10 सेकंड की देरी कर रहा है। उदाहरण के लिए, मैं एक डेटाटाइम उत्पन्न करता हूं जो भविष्य में 1 से 10 सेकंड के बीच होता है। मैंने इसे शेड्यूल किए गए एन्केयूटाइमयूटीसी के रूप में सेट किया है और मैंने उस संदेश को उस संदेश पर एक संपत्ति के रूप में भी रखा है जिसे मैं भेज रहा हूं, मैं क्लाउड सेवा ए में वापस प्राप्त करते समय उस डेटाटाइम प्रॉपर्टी को एनक्यूडटाइम यूटीसी संपत्ति की तुलना करता हूं। ये 2 बार सुंदर होना चाहिए एक साथ बंद करो, और यही वह तरीका है जो पिछले शुक्रवार तक महीनों तक काम कर रहा है।

तो अब बादल सेवा बी यह 1 सेकंड में कतार में इस संदेश को डाल कह रहा है। क्लाउड सर्विस ए का कहना है कि यह 12-14 सेकंड के लिए कतार में नहीं आया था। संदेश कतार में डालते समय मैं एसिंक विधियों का उपयोग कर रहा हूं। यदि मैं ScheduledEnqueueTimeUtc का उपयोग नहीं करता हूं, तो कोई देरी नहीं होती है, जब मैं उन्हें क्लाउड सेवा ए में वापस देखता हूं तो समय काफी करीब मिल जाता है। लेकिन अगर मैं भविष्य में अनुसूचित एन्क्वेयूटाइमयूटीसी को 1 सेकंड भी सेट करता हूं तो ऐसा लगता है कि 12 के लिए कतार में दिखाई नहीं दे रहा है -14 सेकंड्स

मैं अब quartz.net का उपयोग कर संदेशों का समय निर्धारित करने की बजाय ScheduledEnqueueTimeUtc संपत्ति की स्थापना द्वारा इस के आसपास काम कर रहा हूँ। लेकिन यह वास्तव में अजीब लगता है कि यह शुरू हो रहा है।

उत्तर

6
ScheduledEnqueueTimeUtc Property's documentation से

:

"।। संदेश समय मतलब नहीं है कि संदेश एक ही समय में भेजा जाएगा enquing यह कतारबद्ध हैं, होंगे, लेकिन वास्तविक भेजने समय कतार के वर्कलोड और अपने राज्य पर निर्भर करता है"

संपत्ति immediatelly वितरित किए जाने नहीं संदेश का कारण बनता है कि। यह से पहले वितरित नहीं किया जाएगा निर्धारित समय है, लेकिन वहाँ आश्वासन दिया है कि यह उस समय बिल्कुल वितरित किया जाएगा नहीं है।

आप उच्च संकल्प शेड्यूलिंग की जरूरत है, क्वार्ट्ज एक विकल्प हो सकता है। आप नए job scheduler का मूल्यांकन भी कर सकते हैं जो मोबाइल सेवा पूर्वावलोकन का हिस्सा है।

+1

धन्यवाद, मैंने इसे दस्तावेज़ में पढ़ा था। लेकिन मुझे लगता है कि यह उतना स्पष्ट नहीं था जितना आप कह रहे हैं और तथ्य यह है कि यह अभी शुरू हो रहा है मुझे फेंक दिया। मुझे लगता है कि मैं इसे जल्द या बाद में भाग गया होता। मुझे इस एप्लिकेशन में जितना संभव हो उतना सटीक होने की आवश्यकता है, इसलिए ऐसा लगता है कि अनुसूचितEnqueueTimeUtc बाहर है। धन्यवाद! –

+0

'वह संपत्ति संदेश को तत्काल वितरित नहीं करती है' इसका क्या अर्थ है? क्या संदेश Azure को भेजा जाएगा, लेकिन उस समय तक कतार में नहीं जोड़ा गया है जब तक कि वह समय तक नहीं पहुंच जाता है या क्या वह उस समय क्लाइंट एप्लिकेशन में इंतजार करता है जो उस समय भेज देगा? –

3

ShcheduledEnqueueTimeUtc कार्यक्षमता में हाल ही में एक प्रतिगमन है कि कुछ मामलों में बढ़त व्यवहार आपने ऊपर देखा, कारण होता नहीं था। यह अगले कुछ दिनों में तय किया जाएगा और आपको अपेक्षित/मूल व्यवहार देखना चाहिए।

अनुसूचित संदेशों पर कैसे व्यस्त कतार है, लेकिन परिदृश्य आप ऊपर उल्लेख में उपयोग करने के लिए ठीक है आधारित कुछ विलम्ब हो सकता है। आपके आवेदन को प्रभावित करने वाली कार्यक्षमता में कोई भी प्रतिशोध Azure के साथ एक समर्थन टिकट के रूप में उठाया जा सकता है: http://www.windowsazure.com/en-us/support/contact/

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