有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何控制流量

使用Reactor,我想限制从通量发布事件的速率,例如,最大为10 Hz,同时丢弃中间的所有元素。我唯一发现的是delayElements(),但是如果元素以更快的速度到达,这将使元素排队,对吗?我想做一些类似someFlux.throttle(10).subscribe()的事情,使通量以每秒最多10个元素的速度返回


共 (1) 个答案

  1. # 1 楼答案

    有一个sample(Duration),因此您可以执行以下操作:

    source.sample(Duration.ofMillis(100));
    

    (100毫秒=十分之一秒,因此每100ms最多只能得到1个元素,即每秒10个元素)

    < >编辑:对于一个正确的^ {< CD2>},还考虑^ {< CD3>}以删除在100MS

    内传播的项目的所有项。