की असीमित प्रारंभिकरण मैं एक अभिनेता को अतुल्यकालिक रूप से प्रारंभ करने के लिए उचित पैटर्न खोजने की कोशिश कर रहा हूं, ताकि मैं निर्भर ActorRef
की आवश्यकता हो। मैं ActorSelection
का उपयोग कर से बचना चाहते हैं, क्योंकि यह अभिनेताओं इसे करने के लिए अंकों की संख्या के रूप मेंअक्का अभिनेताओं
- अस्पष्ट है, और
- कुछ भूमि के ऊपर है कि के लिए कई
tell
रों
अवांछनीय है Actor LifeCycle को देखते हुए किया गया है यह preStart
इत्यादि सहित संदेश लूप शुरू होने तक सभी बहुत सिंक्रोनस प्रतीत होता है, जो मुझे लगता है कि मेरे पास केवल दो विकल्पों में से एक है:
अभिनेता निर्माण एसिंक्रोनस रूप से हल हो गई और Props
के माध्यम से में पारित कर रहे हैं के लिए Future[ActorRef]
सभी निर्भरता का एक हस्ताक्षर के साथ एक कारखाने विधि का उपयोग करें।
इस दृष्टिकोण के साथ मुख्य समस्या यह है कि आप इस कारखाने का उपयोग किसी अन्य अभिनेता के अंदर एक अभिनेता बनाने के लिए नहीं कर सकते हैं, क्योंकि उसके बाद एक ही समस्या है, यानी यह सभी कलाकारों के पदानुक्रम को तारों से नीचे कर रहा है, उनकी निर्भरता असीमित रूप से।
उपयोग become
और stash
अभिनेता संक्रमण के लिए
अभिनेता, actorOf
साथ बनाई गई है तुरंत एक ActorRef
में जिसके परिणामस्वरूप लेकिन यह एक प्रारंभ राज्य में शुरू होता है, यह निर्भरता संकल्प, stash
में भेजे गए संदेशों ing है करता है इस बीच, और अंत में become
राज्य और unstashAll
आईएनजी चला रहा है।
यह अभिनेताओं के लिए बहुत अधिक मूर्खतापूर्ण लगता है, भले ही मेरी निर्भरता के बजाय var
हो।
दोनों बहुत अधिक ओवरहेड की तरह लगते हैं, जिससे मुझे आश्चर्य होता है कि क्या मैं सबसे अच्छे विकल्प हैं या यदि मुझे दस्तावेज़ों में उचित पैटर्न नहीं मिला है।
'अभिनेताफोर' के मेरे उपयोग को संपादित किया, यह एक टाइपो था। 'बन' निश्चित रूप से सर्वोत्तम दृष्टिकोण की तरह दिख रहा है। अभी भी विश्वास नहीं कर सकता कि 'प्रॉप्स' व्यंजनों का कोई एसिंक संस्करण नहीं है –
मैंने अपरिवर्तनीय चलने वाले राज्य के लिए आपके सुझाव के साथ 'बनने'/'स्टैश' आधारित प्रारंभिक चरण के लिए एक विशेषता बनाई है: https: //gist.github। com/sdether/15bc96e27ed965bd89c3 –