提问者:小点点

如何设置溢出策略在Spring Web流?


是否有可能像对任何其他Sink那样,在WebFlow中设置溢出策略?参见https://projectreactor.io/docs/core/release/api/reactor/core/publisher/FluxSink.OverflowStrategy.html

默认行为似乎是:

如果下游跟不上,则缓冲所有信号。警告!这会进行无界缓冲,并可能导致OutOfMemoryError。

我正在寻找一种方法来将其更改为DROP或ERROR:(参见https://projectreactor.io/docs/core/release/api/reactor/core/publisher/FluxSink.OverflowStrategy.html


共1个答案

匿名用户

如果您使用Flux. create来发出值,我们可以将FluxSink.Overflow Strategy.DROP作为附加参数传递。

如果使用EmitterProcess /Any处理器,则接收器方法接受Overflow Strategy

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

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