CompletableFuture
在将 Java与 JMS (ActiveMQ) 一起使用时,我被卡住了。当我发送一个我期望得到回复的请求时,我创建一个CompletableFuture
并将其放入 a 中Map
,并以相关 ID 作为键。
只要我得到答复,它就可以完美地工作。当我没有得到回复时,僵尸开始在地图上堆积。
我试图将清理代码附加到CompletableFuture
usingwhenComplete()
但超时时根本不调用该代码CompletableFuture.get(long,TimeUnit)
(其中的 Java 代码timedGet()
只会抛出异常而不调用其他任何东西)。
这看起来像是一个使用Future
API 的明显地方。有人有一个工作示例或想法如何清理地图中的死条目吗?
注意:最长可能需要三个小时才能收到回复。
注 2:Java 8