将未来作为Akka演员之间的信息发送

时间:2014-07-16 15:41:09

标签: scala akka option future

我正在调用一个在Akka actor中返回Option[Future[String]]的Web服务。现在我需要旋转一个新的子actor并传递这个Option[Future[String]]并停止actor。在子actor中我想等待将来完成,以便我可以对结果做些什么。可以在Akka演员身边传递期货吗?

1 个答案:

答案 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调用的结果后自行终止。