@Override public Flux<? extends Message<String, V>> listenTo(Topic... topics) { ReactiveRedisMessageListenerContainer container = new ReactiveRedisMessageListenerContainer(getConnectionFactory()); return container .receive(Arrays.asList(topics), getSerializationContext().getStringSerializationPair(), getSerializationContext().getValueSerializationPair()) // .doFinally((signalType) -> container.destroyLater().subscribeOn(Schedulers.elastic())); }
@Bean public ReactiveRedisMessageListenerContainer redisMessageListenerContainer(PostRepository posts, ReactiveRedisConnectionFactory connectionFactory) { ReactiveRedisMessageListenerContainer container = new ReactiveRedisMessageListenerContainer(connectionFactory); ObjectMapper objectMapper = new ObjectMapper(); container.receive(ChannelTopic.of("posts")) .map(p->p.getMessage()) .map(m -> { try { Post post= objectMapper.readValue(m, Post.class); post.setId(UUID.randomUUID().toString()); return post; } catch (IOException e) { return null; } }) .switchIfEmpty(Mono.error(new IllegalArgumentException())) .flatMap(p-> posts.save(p)) .subscribe(c-> log.info(" count:" + c), null , () -> log.info("saving post.")); return container; }
@Override public Flux<? extends Message<String, V>> listenTo(Topic... topics) { ReactiveRedisMessageListenerContainer container = new ReactiveRedisMessageListenerContainer(getConnectionFactory()); return container .receive(Arrays.asList(topics), getSerializationContext().getStringSerializationPair(), getSerializationContext().getValueSerializationPair()) // .doFinally((signalType) -> container.destroyLater().subscribeOn(Schedulers.elastic())); }
@Override public Flux<? extends Message<String, V>> listenTo(Topic... topics) { ReactiveRedisMessageListenerContainer container = new ReactiveRedisMessageListenerContainer(getConnectionFactory()); return container .receive(Arrays.asList(topics), getSerializationContext().getStringSerializationPair(), getSerializationContext().getValueSerializationPair()) // .doFinally((signalType) -> container.destroyLater().subscribeOn(Schedulers.elastic())); }