Spring Webflux-连续发射器

时间:2019-07-09 20:15:20

标签: spring-webflux project-reactor

所以我有一个简单的方法

Flux<Task> getTaskToProcess();

我希望我的系统持续流式传播实体。现在我以老式的方式达到了它

while(!Thread.currentThread().isInterrupted()){
    getTaskToProcess().flatMap(....)
}

我很确定这不是被动方法的最佳方法。如何在项目反应堆中实现连续发射?

1 个答案:

答案 0 :(得分:0)

尝试Flux#create或Flux#生成:

Flux<Task> tasks = Flux.create(sink -> {
  while(!Thread.currentThread().isInterrupted()) {
     sink.next(something);
  }
  sink.complete();
})
.subscribeOn(Schedulers.newSingle("stdin publisher"))