2016-08-12 2 views
1

나는 완전히 akka 기능에 익숙하다. at에서는 필자에게 요청을 보내고 Future 객체를 반환하는 데 사용되는 akka.pattern.patterns 패키지의 "ask"메소드를 볼 수있다.akka.pattern.pattern.ask는 어떻게 작동합니까?

알고 싶습니다. 메소드가 대상 액터와 원격으로 통신하는 방법 (원격)? 또한 배우가 요청에 어떻게 반응합니까? .

+0

akka ... ask()의 ​​Java 구현을 검색했지만 찾지 못했습니다? 제발 Java 코드로 문의하십시오. – Vinoth

+0

나는 어떤 질문이라도 자유로이 답을 게시했다. –

답변

3

당신은 당신이

 getSender().tell(result, getSender()); 
+0

답장을 보내 주셔서 감사합니다. @Amit .. 나는 분명히 u가 말한 것을 이해하고 akka 요청을 보내고받는 정확한 장소를 찾았습니다. 이제는 의심의 여지가 하나 있습니다 .. ODL에서 배우에 대한 요청이 많이 제기 될 것입니다 .. 그래서 나는 송신 측과 수신 측을 정확하게 추적하고 싶습니다. 두 가지 방법으로 akka 요청을 추적 할 수있는 방법은 무엇입니까 ??? – Vinoth

0

이 기사와 같은 출력을 반환 할 수 있습니다이

  final Timeout timeout = new Timeout(5, TimeUnit.SECONDS); 
      final Future<Object> future = Patterns.ask(actor, msg, timeout); 
      final String result = (String) Await.result(future, timeout.duration()); 

처럼 그리고 onReceive 방법에서 배우 내부 akka에서 비동기 요청을 포함 보낼 수있는 좋은 설명 예 http://doc.akka.io/docs/akka/snapshot/java/futures.html#Use_with_Actors http://alvinalexander.com/scala/scala-akka-actors-ask-examples-future-await-timeout-result

예 : Akka 공급 업체의 최종 예 :

https://github.com/write2munish/Akka-Essentials/blob/master/ActorMessagingExample/src/main/java/org/akka/essentials/java/future/example/ProcessOrderActor.java

+0

도움이 되었습니까? – pacman