我是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结束。
1条答案
按热度按时间3zwjbxry1#
使用React式编程的目的是使代码异步而不是阻塞。是的,您可以通过不使用subscribe而使用.block()阻止step1完成,但这不是React式编程的要点如果您想保持它的React性,最好返回一个流