Как установить OverflowStrategy в Spring Webflux? - PullRequest
0 голосов
/ 30 апреля 2020

Можно ли установить стратегию переполнения в Webflux, как можно было бы сделать для любого другого Sink? См. https://projectreactor.io/docs/core/release/api/reactor/core/publisher/FluxSink.OverflowStrategy.html

Поведение по умолчанию выглядит следующим образом:

FluxSink.OverflowStrategy BUFFER Буферизует все сигналы, если нисходящий поток не может идти в ногу. Предупреждение! Это делает неограниченную буферизацию и может привести к OutOfMemoryError.

Я искал способ изменить это на DROP или ERROR: (см. https://projectreactor.io/docs/core/release/api/reactor/core/publisher/FluxSink.OverflowStrategy.html)

1 Ответ

0 голосов
/ 04 мая 2020

Если вы используете Flux.create, чтобы передать значения, мы можем передать FluxSink.OverflowStrategy.DROP в качестве дополнительного параметра.

Если вы используете EmitterProcessor / Любой процессор, метод приемника принимает OverflowStrategy .

    EmitterProcessor<Object> emitterProcessor = EmitterProcessor.create();
    FluxSink<Object> sink = emitterProcessor.sink(FluxSink.OverflowStrategy.DROP);

    // you should use sink to publish values
    sink.next(obj);
...