0

我有一个 Finagle 服务器,它显然无法知道何时真正启动。

有这个代码

esbMockServer = Some(defaultServer
        .serve(s"localhost:$esbPort", esbService))
      println(s"Running Finagle Regular Esb Mock Server in port $esbPort.......")
      Await.ready(esbMockServer.get,10 second)

总是在等待中抛出一个超时异常,但它从第二个 1 开始就正常运行。

知道这里有什么问题吗?

4

1 回答 1

1

Await.ready不做你认为它做的事。它与 基本相同Await.result,只是它返回Awaitable对象本身而不是结果。

底线是,将Await.ready在停止后返回(调用),而不是在“准备好”时返回......后者应该是这样,几乎,马上,你不需要等待它.Server.close

通常,您会希望Await.ready(server)在函数的末尾放置main永远阻塞主线程,直到服务器退出。

于 2017-11-21T17:12:51.127 回答