我正在使用第三方 Java 库与 REST API 进行交互。 REST API 有时可能需要很长时间才能响应,最终导致java.net.ConnectException
被抛出。
我想缩短超时时间,但无法修改第三方库。
我想在 Java 方法的调用周围应用某种形式的超时控制,以便我可以确定在什么时候放弃等待。
这与网络超时没有直接关系。我希望能够尝试执行一项操作,并能够在指定的等待时间后放弃。
以下内容绝不是有效的 Java,但确实从概念上演示了我想要实现的目标:
try {
Entity entity = new Entity();
entity.methodThatMakesUseOfRestApi();
} catch (<it's been ages now, I don't want to wait any longer>) {
throw TimeoutException();
}
我建议时间限制器 https://github.com/google/guava/blob/master/guava/src/com/google/common/util/concurrent/TimeLimiter.java来自谷歌番石榴库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)