Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring WebFlux-从流的中间重试Mono_Spring_Spring Boot_Spring Webflux_Project Reactor - Fatal编程技术网

Spring WebFlux-从流的中间重试Mono

Spring WebFlux-从流的中间重试Mono,spring,spring-boot,spring-webflux,project-reactor,Spring,Spring Boot,Spring Webflux,Project Reactor,假设我们有以下代码: T someObject = ...; return step1(someObject) .flatMap(this::step2) .flatMap(this::step3) .flatMap(this::step4) .flatMap(this::step5) .timeout(timeout) .retryBackoff(nu

假设我们有以下代码:

T someObject = ...;
return step1(someObject)
            .flatMap(this::step2)
            .flatMap(this::step3)
            .flatMap(this::step4)
            .flatMap(this::step5)
            .timeout(timeout)
            .retryBackoff(numberOfRetries, Duration.ofMillis(100));
这些step方法中的每一个都返回一个新的Mono

在执行此实现时,如果在步骤3、步骤4或步骤5中发生异常,则从步骤2开始重复整个流程。我希望能够从发生异常的位置重新启动流,例如,如果在步骤4中发生异常,则仅从步骤4重复流(当然,重复输入是步骤3的成功响应)

在当前版本中是否可以以某种方式实现此功能

反应堆堆芯版本 3.2.2.1发布

JVM版本(例如
java-version

1.8

您可以为每个步骤应用单独的
retryBackoff

T someObject = ...;
return step1(someObject)
        .flatMap(o1 -> step2(o1).retryBackoff(...))
        .flatMap(o2 -> step3(o2).retryBackoff(...))
最好将单个timeot和retrybackoff合并到
stepN
方法中