Реактор вызывает утечки памяти? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь создать реактивную конечную точку для событий, отправляемых на канал redis, мой код следующий:

public Flux<RedisMessage> readStream(MessageRequest request){
     return reactiveRedisMessageListenerContainer.receive(ChannelTopic.of("a-channel"))
         .map(message -> convertMessage(message))
         .log();
}

В соответствии с документацией redis для данных о весне реактивный контейнер также отключается, когда пользователь больше не доступен.

Итак, я открываю 2 браузера windows и начинаю получать события. У меня есть следующий журнал:

reactor.Flux.Map.1 | onSubscribe(FluxMap.MapSubscriber)
reactor.Flux.Map.2 | onSubscribe(FluxMap.MapSubscriber)

Затем я закрываю 1 вкладку и снова пытаюсь подписаться. Я ожидаю, что все еще будет 2 карты, но вместо этого я получу:

reactor.Flux.Map.3 | onSubscribe(FluxMap.MapSubscriber)

Итак, почему счетчик не уменьшается? Я оставляю какой-то ресурс открытым?

...