में async io से देर से उत्तर मैं कुछ समय के लिए अक्का का उपयोग कर रहा हूं। मैं async io के लिए देर से जवाब हल करने के लिए अपने कोड में कुछ पैटर्न देखना शुरू कर दिया। क्या यह कार्यान्वयन ठीक है? ब्लॉक के बिना देर से जवाब देने का एक और तरीका है?अक्का
class ApplicationApi(asyncIo : ActorRef) extends Actor {
// store senders to late reply
val waiting = Map[request, ActorRef]()
def receive = {
// an actore request for a user, store it to late reply and ask for asyncIo actor to do the real job
case request : GetUser =>
waiting += (sender -> request)
asyncIo ! AsyncGet("http://app/user/" + request.userId)
// asyncio response, parse and reply
case response : AsyncResponse =>
val user = parseUser(response.body)
waiting.remove(response.request) match {
case Some(actor) => actor ! GetUserResponse(user)
}
}
}
मुझे लगता है कि आप सही हैं; मैं भूल गया कि 'प्रेषक' अभिनेता की एक परिवर्तनीय संपत्ति है और न केवल एक चर है जिसे बंद किया जा सकता है। –
कि इंफिक्स निकालने वाला वास्तव में दिलचस्प है – sourcedelica