एक विकल्प - जो आपके मामले पर लागू हो सकता है (या नहीं कर सकता) gen_event व्यवहार का उपयोग करना है।
अस्वीकरण
मैं कहता हूँ "सकता है" क्योंकि यह क्या अपने "श्रमिकों" अपने विशिष्ट मामले में क्या पर निर्भर करता है। यदि आप उनके उत्तरों की सामग्री में रुचि रखते हैं, तो आप इस दृष्टिकोण का उपयोग न करना पसंद कर सकते हैं, लेकिन यदि आप इस तथ्य में रुचि रखते हैं कि सभी श्रमिकों ने अपने कार्यों को पूरा किया - उदाहरण के लिए कार्यकर्ता प्रक्रियाएं कुछ भारी गणना करती हैं और डेटाबेस पर अपने आंशिक परिणाम संग्रहित करते हैं, इसलिए आप आंशिक रूप से गठबंधन करने के लिए तैयार हैं - gen_event जाने का मार्ग हो सकता है।
अस्वीकरण
का अंत तो ...
OTP में, तो इवेंट मैनेजर एक नामित वस्तु जो करने के लिए घटनाओं भेजा जा सकता है है।
घटनाक्रम संदेश हैं।
ईवेंट मैनेजर में, शून्य, एक या कई ईवेंट हैंडलर स्थापित हैं। जब ईवेंट मैनेजर को किसी ईवेंट के बारे में अधिसूचित किया जाता है, तो ईवेंट को सभी इंस्टॉल किए गए ईवेंट हैंडलर द्वारा संसाधित किया जाएगा।
तो, मूल रूप से, एक पर्यवेक्षक और कई श्रमिकों के बजाय, आपके पास एक ईवेंट मैनेजर और कई ईवेंट हैंडलर हैं।
फिर आप gen_event:sync_notify/2 समारोह इस्तेमाल कर सकते हैं:
sync_notify भावना है कि यह के बाद ठीक वापस आ जाएगी घटना सभी ईवेंट हैंडलर्स ने संभाला कर दिया गया है में तुल्यकालिक है।
* gen_event के बारे में अधिक जानकारी के लिए * here और there देखो।
स्रोत
2011-09-22 13:15:56