2015-02-02 7 views
5

एज़ूर वेबजब्स एसडीके के ServiceBusTrigger के लिए जहर-संदेश हैंडलिंग कैसे काम करता है? मैं सेवा बस कतार संदेशों है कि एक अलग ServiceBus (या) भंडारण कतारAzure WebJobs और ServiceBusTrigger

ऑनलाइन प्रलेखन here से here और here और एसडीके नमूने पर कैसे उदाहरण नहीं है करने के लिए 'एक्स' से अधिक बार dequeued दिया है पुश करने के लिए देख रहा हूँ जहर संदेश हैंडलिंग ServiceBusTrigger के लिए काम करता है। क्या यह काम प्रगति पर है?

मैं dequeueCount पैरामीटर का उपयोग करने से निपटने के लिए एक कस्टम जहर संदेश को लागू करने की कोशिश की लेकिन यह नहीं लगता है कि यह ServiceBusTriggers के लिए समर्थित है के रूप में मैं एक क्रम अपवाद {"Cannot bind parameter 'dequeueCount' when using this trigger."}

public static void ProcessMessage([ServiceBusTrigger(topicName: "abc", subscriptionName: "abc.gdp")] NotificationMessage message, 
      [Blob("rox/{PayloadId}", FileAccess.Read)] Stream blobInput, Int32 dequeueCount) 
     { 
      throw new ArgumentNullException(); 
     } 

उत्तर

6

जब आप ServiceBus संदेशों के लिए dequeueCount संपत्ति नहीं मिल सकता है, तो आप हमेशा NotificationMessage के बजाय BrokeredMessage करने के लिए बाध्य हैं और इसे से संपत्ति प्राप्त कर सकते हैं।

6

यह WebJobs की तरह दिखता है पर आंतरिक रूप से इस संभालती हो रही थी क्षण।

संदर्भ: How to use Azure Service Bus with the WebJobs SDK

विशिष्ट अनुभाग:

ServicebusTrigger कैसे काम करता है

एसडीके PeekLock मोड में संदेश प्राप्त करता है और संदेश पर पूरा कॉल समारोह को सफलतापूर्वक खत्म करते हैं, या फ़ंक्शन विफल होने पर Abandon को कॉल करता है। यदि फ़ंक्शन PeekLock टाइमआउट से अधिक समय तक चलता है, लॉक स्वचालित रूप से नवीनीकृत हो जाता है।

सेरीस बस अपनी स्वयं की जहर कतार हैंडलिंग करता है, इसलिए न तो वेबजब्स एसडीके द्वारा नियंत्रित और न ही कॉन्फ़िगर करने योग्य है।

+0

मैं ServiceBusTrigger ... पेचीदा होने के लिए लगता है। यदि मैं WebJobs "डैशबोर्ड" में फ़ंक्शन इनवोकेशन की स्थिति की जांच करता हूं, तो यह अभी तक समाप्त नहीं हुआ है, जो एक आमंत्रण के लिए मिलीसेकंड में चलने वाले समय के साथ स्थिति "सफलता" कहता है। यह एक लंबी चल रही प्रक्रिया है (> 10 मिनट), फिर भी स्थिति तुरंत "सफलता" है। क्या ServiceBusTrigger तुरंत सफलता वापस कर देता है और फिर संदेश को संभालता है? – Anton

0

ब्रेंडन ग्रीन के उत्तर में जोड़ने के लिए, वेबजब्स एसडीके ने उन संदेशों पर अबंडन को कॉल किया जो प्रक्रिया में विफल रहे, और अधिकतम संख्या में रीट्री के बाद इन संदेशों को सेवा बस द्वारा मृत पत्र कतार में स्थानांतरित कर दिया गया। एक संदेश जब मृत संदेश कतार में स्थानांतरित किया जाएगा, जैसे कि अधिकतम वितरण गणना, जीने का समय, और पीककॉक अवधि को सेवा बस -> कतार -> गुणों में बदला जा सकता है।

आप एस.बी. मृत पत्र कतार यहां पर अधिक जानकारी प्राप्त कर सकते हैं: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues

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