首页 文章

无法获得Akka Future Value Akka 1.3-RC2

提问于
浏览
2

我是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 回答

  • 5

    确实只是你缺少的一个小细节:你的演员没有回复!我可以建议如下:

    class FutureDemo extends Actor {
      def receive = {
        case (a: Int, b: Int) => self.reply(a + b)
      }
    }
    

相关问题