如何使用 Akka Actor 询问和维护类型安全?或者避免使用询问来支持告诉?
在Akka Actor 上调用?
或时,会返回 a ,我必须通过.ask
Future[Any]
future.mapTo[MyType]
我不喜欢失去这种类型的安全性。如果我直接使用 Futures(没有参与者),我可以显式返回Future[MyType]
并维护类型安全。
我的具体用例涉及一个演员将它的消息委托给两个子演员,然后汇总这些演员的结果并将其返回给父母的发件人。我父母的接收方法看起来类似于 Akka Docs 中的这种方法:
http://doc.akka.io/docs/akka/2.0/scala/futures.html#For_Comprehensions
val f1 = actor1 ? msg
val f2 = actor2 ? msg
val f3 = for {
a ← f1.mapTo[Int]
b ← f2.mapTo[Int]
c ← ask(actor3, (a + b)).mapTo[Int]
} yield c
有没有更好的方法来实现我的用例?