在项目React堆中,以下行为的原因是什么?
如果我有序列,
Retry
.anyOf( IOException.class )
.retryMax( Long.MAX_VALUE ).fixedBackoff( Duration.ofSeconds( 1 ) )
.doOnRetry( objectRetryContext -> System.out.println("retrying") )
.apply( Mono.error( new IOException() ) )
.then( Mono.just( 47 ) )
.subscribe();
异常在中捕获,控制台打印重试。然而,当我介绍一个 Mono.delay
,将传播异常,并最终由默认值捕获 Hook
.
Retry
.anyOf( IOException.class )
.retryMax( Long.MAX_VALUE ).fixedBackoff( Duration.ofSeconds( 1 ) )
.doOnRetry( objectRetryContext -> System.out.println("retrying") )
.apply( Mono.delay( Duration.ofSeconds( 3 ) ).then( Mono.error( new IOException() ) ) )
.then( Mono.just( 47 ) )
.subscribe();
如果在该级别使用
Hooks.onOperatorError( ( throwable, o ) -> {
System.out.print( "hooked - " );
return throwable;
} );
然后控制台打印hooked-重复重试。原因是什么?正确的处理方法是什么?
暂无答案!
目前还没有任何答案,快来回答吧!