Fix ReactiveRedisMessageListenerContainer disposal via ReactiveRedisTemplate.listenToLater(…).

We now properly dispose the container at the right time and not as result of the Mono<…> completion.

Closes: #2386
Original Pull Request: #2467
This commit is contained in:
Mark Paluch
2022-11-30 15:29:08 +01:00
committed by Christoph Strobl
parent 716640b7a8
commit 7b6a697265

View File

@@ -291,7 +291,8 @@ public class ReactiveRedisTemplate<K, V> implements ReactiveRedisOperations<K, V
return (Mono) container.receiveLater(Arrays.asList(topics), getSerializationContext().getStringSerializationPair(),
getSerializationContext().getValueSerializationPair()) //
.doFinally((signalType) -> container.destroyLater().subscribe());
.map(it -> it.doFinally(signalType -> container.destroyLater().subscribe()))
.doOnCancel(() -> container.destroyLater().subscribe());
}
// -------------------------------------------------------------------------