Finagle 服务器启动后未准备好

Finagle server dont ready after start

我有一个 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)

始终在 Await 中抛出超时异常,但它已经启动并且 运行 从第二个 1 开始就正常了。

知道这里出了什么问题吗?

Await.ready 并不像您认为的那样。它与 Await.result 基本相同,除了它 return 是 Awaitable 对象本身而不是结果。

底线是,Await.ready 将 return Server 停止后 .close是在上面调用的),不是在"ready"的时候……后者应该是这样,差不多,马上,不用等了。

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