2

CompletableFuture在将 Java与 JMS (ActiveMQ) 一起使用时,我被卡住了。当我发送一个我期望得到回复的请求时,我创建一个CompletableFuture并将其放入 a 中Map,并以相关 ID 作为键。

只要我得到答复,它就可以完美地工作。当我没有得到回复时,僵尸开始在地图上堆积。

我试图将清理代码附加到CompletableFutureusingwhenComplete()但超时时根本不调用该代码CompletableFuture.get(long,TimeUnit)(其中的 Java 代码timedGet()只会抛出异常而不调用其他任何东西)。

这看起来像是一个使用FutureAPI 的明显地方。有人有一个工作示例或想法如何清理地图中的死条目吗?

注意:最长可能需要三个小时才能收到回复。
注 2:Java 8

4

0 回答 0