2010-06-04 11 views
7

मैं सेवाओं के बीच एक पुल के रूप में एरलांग का उपयोग कर रहा हूं और मैं सोच रहा था कि डाउन कनेक्शन को संभालने के लिए लोगों को क्या सलाह थी?डाउनल होस्ट्स के कनेक्शन को पुनरारंभ करने के लिए एरलांग पर्यवेक्षक रणनीति

मैं स्थानीय फाइलों से इनपुट ले रहा हूं और उन्हें एएमक्यूपी में पाइप कर रहा हूं और यह कल्पना की जा सकती है कि एएमक्यूपी ब्रोकर नीचे जा सकता है। उस मामले के लिए मैं एएमक्यूपी सर्वर से कनेक्ट करने के लिए पुनः प्रयास करना चाहता हूं लेकिन मैं उन कनेक्शन प्रयासों के साथ सीपीयू को पेग नहीं करना चाहता हूं। मेरा झुकाव AMQP कोड के रीबूट में नींद डालना है। क्या वह 'हैक' अनिवार्य रूप से विफल होने के उद्देश्य को रोक नहीं सकता है और इसे एर्लांग को संभालने की अनुमति देता है? अधिक आम तौर पर, क्या डाउनल कनेक्शन को संभालने के लिए एरलांग पर्यवेक्षक व्यवहार का उपयोग किया जाना चाहिए?

उत्तर

3

मुझे लगता है कि बाहरी सर्वर से कनेक्शन को संभालने के लिए अपने स्वयं के अर्थशास्त्र को कोड करना उचित है। सुपरवाइजर आपके स्वयं के प्रक्रिया पेड़ में क्रैश/लॉक/अन्यथा अस्वास्थ्यकर प्रक्रियाओं को संभालने के लिए सबसे उपयुक्त हैं, बाहरी सेवा के लिए पुन: कनेक्शन नहीं।

क्या आपकी प्रक्रिया है जो स्थानीय प्रक्रियाओं को उसी प्रक्रिया पेड़ में एएमक्यूपी ब्रोकर के रूप में पाइप करती है या यह एक अलग सेवा है?

+0

मैं सहमत हूं। हो सकता है कि पर्यवेक्षकों को व्यावसायिक तर्क में नहीं खेलना चाहिए, वे सिर्फ मृत प्रक्रियाओं को संभालने और चीजों को सुसंगत रखने के लिए हैं (one_for_all, one_for_one, आदि)। और हाँ, फ़ाइल पाइपर और एएमक्यूपी क्लाइंट प्रक्रिया अलग प्रक्रियाएं हैं। Erlang-amqp-client प्रत्येक कनेक्शन के लिए एक प्रक्रिया बनाता है (या वह चैनल है?), अब मुझे इसे मरने की जरूरत है। सीखने के लिए बहुत कुछ! – xrl

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