Java 如何为流式数据创建流量/发布器

Java 如何为流式数据创建流量/发布器,java,reactive-programming,project-reactor,Java,Reactive Programming,Project Reactor,我使用轮询方法定期获取数据。新数据随时可能到达。我想向我的客户机公开一个反应式接口。因此,我想创建一个发布者(Flux?),在新数据可用时发布新数据并通知订户。我该怎么做?我看到的所有通量示例都是针对数据已知/可用的情况。实际上,我需要基于队列的流量之类的东西,我的轮询线程在发现新数据时可以继续填充队列。简单来说,您可能需要使用DirectProcessor。这不是最复杂的通量汇,但它会让你有一点方法 我写了一个简单的例子: Flux hot=DirectProcessor.create() h

我使用轮询方法定期获取数据。新数据随时可能到达。我想向我的客户机公开一个反应式接口。因此,我想创建一个发布者(Flux?),在新数据可用时发布新数据并通知订户。我该怎么做?我看到的所有通量示例都是针对数据已知/可用的情况。实际上,我需要基于队列的流量之类的东西,我的轮询线程在发现新数据时可以继续填充队列。

简单来说,您可能需要使用
DirectProcessor
。这不是最复杂的通量汇,但它会让你有一点方法

我写了一个简单的例子:

Flux hot=DirectProcessor.create()
hot.onNext(“Hello”)//未打印
hot.subscribe(it->System.out.println(it))
hot.onNext(“再见”)//已打印
线程。睡眠(100)
hot.onNext(“foo”)//已打印
DirectProcessor实现了通量,所以您可以像通量一样使用它

如您所见,在订阅hotsource之前添加的元素不会传递给subscribe


看看其他帖子,Flux#create和Flux#generate可能是一个很好的起点。好的,看起来我需要用水槽。所以,可能是通量创建(下沉)或通量推(下沉)。