【发布时间】:2018-12-07 07:05:39
【问题描述】:
我是响应式编程的新手。我有一段代码只有在并行任务结束后才应该并行运行,然后它应该被执行
//step 1 parallel stuff
Flux.fromIterable( sourceOneMap.keySet() )
.parallel()
.runOn( Schedulers.parallel() )
.subscribe( compId -> {
Mono.just( compId )
.then( checkIfSystemTwoContainsSystemOneInfo(compId,sourceOneMap,sourceTwoMap,new Timestamp( new Date().getTime() )) )
.doOnError( e -> log.info( "error {}", e.getStackTrace()) );} );
//step 2
return new MissingCountResult( rtbmDao.findCount(), new Date() );
现在,当我运行我的代码时,首先执行第 2 步,然后第 1 步。第 2 步取决于第 1 步。第 1 步应该首先竞争。有没有办法我可以阻止第 2 步,直到第 1 步结束。
【问题讨论】:
-
阻止你的响应式代码是个坏主意,因为你失去了响应式方法的优势,更好的方法是将你的代码组合到一个链中并返回 MissingCountResult 的 Mono
标签: java spring-boot reactive-programming project-reactor