在运行时更改Spring Cloud断路器的超时时间?



我在我的应用程序中使用Spring Cloud Circuit Breaker 2.0.0 (resilience4j实现)来断路和超时。我创建了以下配置:

@Bean
public Customizer<Resilience4JCircuitBreakerFactory> defaultCustomizer() {
return factory -> 
factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(10)).build())
.circuitBreakerConfig(..)
.build());
}

现在我想写一个集成测试来验证当超时发生时我的行为是正确的。为了使其工作,我想暂时将上述配置中指定的超时时间更改为1毫秒,而不是10秒。

所以我的问题是:当我编写Spring Boot集成测试时,我如何更改TimeLimiterConfig(暂时)的超时值?

您可以使用@ValueSpring注释从您的资源文件夹src/main/resources/common.properties中检索配置文件中的值。

@Bean
public Customizer<Resilience4JCircuitBreakerFactory> defaultCustomizer(
@Value("${duration.milli:600}") int durationMilli) {
return factory -> 
factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofMilli(durationMilli)).build())
.circuitBreakerConfig(..)
.build());
}

然后将值设置为src/main/resources/common.properties

duration.milli=600

当你在做你的测试,你可以配置另一个资源文件在test文件夹src/test/resources/common.properties与不同的值。

duration.milli=1

相关内容

  • 没有找到相关文章

最新更新