是否有可能像对任何其他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
)
如果您使用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);