Akka演员将未来寄回给发件人

时间:2016-02-14 19:34:18

标签: akka

我有一个Actor通过返回Future [String]来响应发送者。这是代码位:

case PingTsdb => {
    sender ! someService.getVersion // returns a Future[String]
  }

getVersion方法返回Future [String],但是当我运行此方法时,我收到以下错误:

Cannot cast scala.concurrent.impl.Promise$KeptPromise to java.lang.String

我知道它正在尝试将Future [String]转换为String,但是如何让这个actor工作呢?我可以在getVersion方法返回值上写一个onComplete处理程序,但是有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我想出来了。我不得不使用akka.ask模式中的pipeTo方法!

getTsVersion pipeTo sender

就这么简单!