Я пытаюсь создать реактивную конечную точку для событий, отправляемых на канал 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)
Итак, почему счетчик не уменьшается? Я оставляю какой-то ресурс открытым?