내가Akka 배우/스칼라 - 여러에 대한 하나는 onSuccess이
A --> B --> C
배우 A를 같은 akka 배우의 사슬을 요청 차례로 배우 C. 배우 A는 기다릴 필요 '요청'배우 B를 '요청' 배우 C가 처리를 마칠 때까지 B는 기본적으로 B 단지 무엇을지고하는 것은 미래 [모든]입니다 따라서
{ case msgFromA => sender ! C ? msgFromA }
을 얇은 층이며, C에 메시지를 전달 (요청)보다 더 아무것도하지 않고 A로 다시 미래를 반환합니다.
A는 요청을 처리하는 방법
는 끔찍한 보이는 말을 중첩지도actorRefFactory.actorOf(Props[A]) ? msgA map {
resp =>
// Type cast Any to Future and use another map to complete processing.
resp.asInstanceOf[Future[_]] map {
case Success =>
// Complete processing
case Failure(exc) =>
// Log error
이 작동 (즉 최종 처리는 배우 C가 처리를 완료 한 경우에만 발생)하지만 불필요한를 사용하고 있습니다. 나는 flatmaps를 사용해 보았지만 제대로 작동하지 못했습니다. 어떤 아이디어가 좋은 :) 감사
을 보이게
번호 액터 C가 데이터베이스를 호출하고 캐시를 업데이트합니다. – mohit
어쩌면 엄지 손가락 규칙을 놓친 것 같습니다. 그러나 이것은 깔끔한 비 배우를 사용하여 이전 구현보다 효과적입니다. 나는 캐스트 형식이 싫지만 제공하는 성능상의 이점으로 인해 함께 살 수 있습니다. – mohit