在服务中,我有一个 main 方法,它启动 acom.twitter.finagle.ListeningServer
并创建一个自定义“通道”,返回 acom.twitter.util.Future
永远不会完成(除非出现错误)。两者实际上都是com.twitter.util.Awaitable
实例,如果其中任何一个完成,我想关闭我的服务。
如果两者都是com.twitter.util.Future
s 我可以Future.select
用来选择第一个完成的未来,所以现在我将转换com.twitter.finagle.ListeningServer
为com.twitter.util.Future
using pool { Await.result(listeningServer) }
。
有没有更好的方法来解决我的问题?