我正在调用一个在Akka actor中返回Option[Future[String]]
的Web服务。现在我需要旋转一个新的子actor并传递这个Option[Future[String]]
并停止actor。在子actor中我想等待将来完成,以便我可以对结果做些什么。可以在Akka演员身边传递期货吗?
答案 0 :(得分:3)
警告:未编译,如有疑问,请参阅doc.akka.io。
import akka.pattern.pipeTo
def receive = {
case something =>
webService.call() foreach { _ pipeTo context.actorOf(Props[Child]) }
}
这个想法是,如果Web服务没有返回任何内容(None),则不需要子actor,如果它返回Some(future),则将Future的结果发送给新创建的子actor。然后,新创建的子actor可以在收到webservice调用的结果后自行终止。