Project reactor 什么是;由于缺少请求,无法发出勾号XXX“;什么意思?

Project reactor 什么是;由于缺少请求,无法发出勾号XXX“;什么意思?,project-reactor,Project Reactor,我有一个简单的代码,它使用以下命令定期执行某些任务: Flux.interval(Duration.ZERO, interval, scheduler) 有时(很少)我会看到出现以下错误: Could not emit tick 4218 due to lack of requests (interval doesn't support small downstream requests that replenish slower than the ticks) 看着源代码,我不明白它是什么

我有一个简单的代码,它使用以下命令定期执行某些任务:

Flux.interval(Duration.ZERO, interval, scheduler)
有时(很少)我会看到出现以下错误:

Could not emit tick 4218 due to lack of requests (interval doesn't support small downstream requests that replenish slower than the ticks)
看着源代码,我不明白它是什么意思。有人能解释一下吗?如果有人能帮我写一段代码来重现这个问题,那也太好了


这实际上意味着链中的某些代码太慢,无法及时处理发出的元素。以这个流为例:

Flux.interval(Duration.ofSeconds(1)) //emit every second
  .map(i -> { 
         //do something that takes 2 seconds
       })
  .subscribe();
每秒都会向流推送一个新值。也就是说,Reactor尝试这样做,但流仍然忙于处理前一个值(这需要一秒钟以上)。请注意,此示例仅用于说明,可能会重现您的问题,也可能不会重现