flux并行操作和并行操作后的阻塞任务

fcwjkofz  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(520)

我是React式编程的新手,我有一段代码,只有在并行任务结束后才应该并行运行,然后才应该执行

//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结束。

3zwjbxry

3zwjbxry1#

使用React式编程的目的是使代码异步而不是阻塞。是的,您可以通过不使用subscribe而使用.block()阻止step1完成,但这不是React式编程的要点如果您想保持它的React性,最好返回一个流

相关问题