首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Resilience4j CircuitBreaker resultRecord问题

Resilience4j CircuitBreaker resultRecord问题
EN

Stack Overflow用户
提问于 2022-01-06 15:13:12
回答 1查看 145关注 0票数 0

我在使用resilience4j断路器模块。我可以在抛出异常时破坏电路。没关系。但我也需要检查HttpResponse消息。我找不到如何使用recordResult函数。有人成功地使用了它吗?

代码语言:javascript
复制
public class CircuitBreakerHelper {
    public CircuitBreaker createCircuitBreaker() {
        // Create a custom configuration for a CircuitBreaker
        CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom()
                .failureRateThreshold(50)
                .slowCallRateThreshold(50)
                .permittedNumberOfCallsInHalfOpenState(3)
                .minimumNumberOfCalls(2)
                .slidingWindowType(CircuitBreakerConfig.SlidingWindowType.COUNT_BASED)
                .slidingWindowSize(2)
                .recordExceptions(Exception.class)
                //.recordResult(result -> result.equals("etc")) 
                .build();

        CircuitBreakerRegistry circuitBreakerRegistry =
                CircuitBreakerRegistry.of(circuitBreakerConfig);
        CircuitBreaker circuitBreaker = circuitBreakerRegistry
                .circuitBreaker("name");
        return circuitBreaker;

    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-18 12:16:42

您可以在下面的响应实体中尝试更改,就像我只使用字符串一样,您可以使用任何类型或参数化类型。

代码语言:javascript
复制
Supplier<ResponseEntity<String>> decoratedSupplier = CircuitBreaker
            .decorateSupplier(circuitBreaker, this::getStringResponseEntity);

    ResponseEntity<String> result = Try.ofSupplier(decoratedSupplier).get();

private ResponseEntity<String> getStringResponseEntity() {
    ResponseEntity<String> responseEntity=  restTemplate.postForEntity("PROTOCOL://HOST:PORT/API CALL",null,String.class, (Object) null);
    return responseEntity;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70609265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档