gpt4 book ai didi

scala - Akka Actor 询问和类型安全

转载 作者:行者123 更新时间:2023-12-03 14:11:18 24 4
gpt4 key购买 nike

如何使用 Akka Actor 询问和维护类型安全?或者避免使用询问来支持告诉?

调用?时或 ask关于 Akka Actor ,Future[Any]被返回,我必须通过 future.mapTo[MyType] 进行显式转换.

我不喜欢失去这种类型的安全性。如果我直接使用 future (没有 Actor ),我可以明确返回 Future[MyType]并保持类型安全。

我的具体用例涉及一个 Actor 将它的消息委托(delegate)给两个子 Actor ,然后汇总这些 Actor 的结果并将其返回给 parent 的发件人。我 parent 的接收方法看起来类似于 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

有没有更好的方法来实现我的用例?

最佳答案

我想发布一个新答案,因为@Roland Kuhn 最近为此提出了一个名为 Typed Channels 的新解决方案:

val f: Future[MyType] = actor <-?- message
  • Roland's Presentation
  • In the Akka docs
  • 关于scala - Akka Actor 询问和类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630585/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com