in my own answer to my own question के रूप में समसामयिक रूप से प्रसंस्करण, मेरे पास ऐसी स्थिति है जिससे मैं कतार में आने वाली बड़ी संख्या में घटनाओं को संसाधित कर रहा हूं। प्रत्येक घटना को ठीक उसी तरह से संभाला जाता है और प्रत्येक को अन्य सभी घटनाओं से स्वतंत्र रूप से संभाला जा सकता है।स्कैला
मेरा प्रोग्राम स्कैला समरूपता ढांचे का लाभ उठाता है और इसमें शामिल कई प्रक्रियाओं को Actor
एस के रूप में मॉडलिंग किया जाता है। Actor
रों प्रक्रिया के रूप में उनके संदेशों को क्रमिक रूप से, वे इस विशेष समस्या (भले ही मेरी अन्य अभिनेताओं क्रिया जो अनुक्रमिक हैं प्रदर्शन कर रहे हैं) के लिए अच्छी तरह से अनुकूल नहीं हैं।
- घटना का एक पूल के लिए घटनाओं भेजें: मैं "नियंत्रण" के लिए स्काला चाहते जैसा कि सभी धागा निर्माण ऐसा लगता है मैं 2 विकल्प हैं (जो मुझे लगता है कि यह पहली जगह में एक संगामिति प्रणाली होने की बात है) प्रोसेसर है, जो मैं
- को नियंत्रित किसी अन्य तरीके से मेरी
Actor
उन्हें कार्रवाई करने के लिए मिलता है समवर्ती
मैं सोचा होगा कि # 1 अभिनेताओं सबसिस्टम का उपयोग कर की बात को नकारता: कितने प्रोसेसर अभिनेताओं मैं बनाना चाहिए? एक स्पष्ट सवाल है। ये चीजें माना जाता है कि वे मुझसे छिपाए गए हैं और उपप्रणाली द्वारा हल किए गए हैं।
val eventProcessor = actor {
loop {
react {
case MyEvent(x) =>
//I want to be able to handle multiple events at the same time
//create a new actor to handle it
actor {
//processing code here
process(x)
}
}
}
}
वहाँ एक बेहतर दृष्टिकोण है:
मेरा जवाब निम्न करने के लिए था? क्या यह गलत है?
संपादित करें: एक संभवतः बेहतर तरीका है:
val eventProcessor = actor {
loop {
react {
case MyEvent(x) =>
//Pass processing to the underlying ForkJoin framework
Scheduler.execute(process(e))
}
}
}
हालांकि अभिनेता सीधे श्रमिकों के पूल का समर्थन नहीं करते हैं, यह क्यू इस कमी को उजागर करने में सहायक था। सभी डॉक्स मेरे पास उपलब्ध है, इस स्पष्ट रूप से उल्लेख नहीं है। – ePharaoh