JMS с CompletableFuture

Я застрял при использовании Java CompletableFuture с JMS (ActiveMQ). Когда я отправляю запрос, на который я ожидаю ответа, я создаю CompletableFuture и положить это в Map с идентификатором корреляции в качестве ключа.

Это прекрасно работает, пока я получаю ответ. Когда я не получаю ответа, зомби начинают накапливаться на карте.

Я пытался прикрепить код очистки к CompletableFuture с помощью whenComplete() но код вообще не вызывается, когда CompletableFuture.get(long,TimeUnit) время ожидания (код Java в timedGet() просто выбросит исключение, не вызывая ничего другого).

Это выглядит так очевидное место, чтобы использовать Future API. У кого-нибудь есть рабочий пример или идея как убрать мертвые записи на карте?

Примечание. До получения ответа может пройти до трех часов.
Примечание 2: Java 8

0 ответов

Другие вопросы по тегам