我是Akka的新手,并制作了几个测试文件来练习Akka的概念 . 以下测试似乎很简单,但无论出于何种原因,如果我从演员那里获得未来,我将无法获得未来的 Value . 我基于akka文档(http://akka.io/docs/akka/1.3-RC2/scala/futures.html#futures-scala)中的几个例子做了我所有的假设 . 例如:
这就像一个向导:
val f = Future{ 1 + 4 }
f onComplete
{
_.value.get.fold(
v => throw new Exception("My Exception"),
println(_)
)
}
这不是:
class FutureDemo extends Actor
{
def receive =
{
case (a: Int, b: Int) =>
a + b
}
}
val fa1 = actorOf[FutureDemo].start()
val future = fa1 ? (1, 2)
future onComplete
{
_.value.get.fold(
v => throw new Exception("My Exception"),
println(_)
)
}
我非常高兴地知道,由于期货的极端简单,我是唯一一个曾经遇到过这个问题的人(幸运的是我) . 有人会帮助让我看到暴力明显的问题吗?
我应该注意到,我曾尝试在另一个actor中处理,并使用简单的main方法 . 其中每一个都以同样令人敬畏的方式失败,其中不包括任何通知 . 如果用简单的_907894替换onComplete,我最终会得到一个超时异常(线程中的异常"main" akka.dispatch.FutureTimeoutException:Futures在[4996]毫秒后超时) . 我还应该注意到我确实试图尝试使用1.1和1.2版本的akka .
谢谢!
1 回答
确实只是你缺少的一个小细节:你的演员没有回复!我可以建议如下: