只有一份来自
.interval
运算符,即在每个指定的时间间隔上生成
onNext
将安排活动。
不幸的是,无法保证计划的任务在提交后会及时执行。
这是因为潜在的
Scheduler
。
Flux.interval
换言之,是一个调度某个事件并在一段时间内重复它的操作符。这里的问题是,任何计划的操作都依赖于
Thread
在其上计划该操作。对于Reactor,它是一组线程,或者换句话说是ThreadPool(在Reactor世界中是
调度程序
)。这里的问题是,操作的执行可能会晚一点(但不是早一点),这是无法保证的,因为在线程的情况下,底层系统调度器可能会将执行时间分配给另一个线程或另一个如此专用的执行
线
将耗尽CPU周期,或者在线程池的情况下,有一个线程池的队列,反过来,有可能会有另一个更重要的任务更早执行。
所有这一切都意味着时间间隔将推迟。反过来,这意味着缓冲区中可能有3个任务。所有这些
interval
保证间隔任务将按每个指定的间隔进行调度(在您的情况下是200 ms)