Flux.map обрабатывать много раз, как это сделать - PullRequest
0 голосов
/ 23 октября 2018

logger распечатывает содержимое, иногда оно заполнено, какое-то время находится в фазе, я хочу, чтобы содержимое принималось, и печатал журнал, как я это делаю

ServerHttpResponse response = exchange.getResponse();
        DataBufferFactory bufferFactory = response.bufferFactory();
        ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(response) {
            @Override
            public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) {
                {
                    if (body instanceof Flux) {
                        Flux<? extends DataBuffer> fluxBody = (Flux<? extends DataBuffer>) body;
                        return super.writeWith(fluxBody.map(dataBuffer -> {
                            byte[] content = new byte[dataBuffer.readableByteCount()];
                            dataBuffer.read(content);

                            DataBufferUtils.release(dataBuffer);

                            logger.info("[content={}]", new String(content, Charsets.UTF_8));



                            }
                            return bufferFactory.wrap(content);
                        }));
                    }
                    return super.writeWith(body);
                }
            }
...