有没有办法在 Micronaut 中手动重置断路器?

问题描述

我想弄清楚是否可以在测试 (Java) 中手动重置断路器。我目前正在为其添加睡眠以重置自身,但并不理想,因为测试将运行更长的时间。

我想注入 CircuitBreakerRetry 并手动更改状态,但它是包私有的,因此不是一个选项。

Histryx 进行了手动重置,目的与我想知道 Micronaut 中是否有任何内容的目的相同。

目前我在客户端方法上注释了它:

class MyClient {
   @CircuitBreaker(
        delay = "${config.client.circutBreaker.delay}",reset = "${config.client.circutBreaker.resetTimeout}",attempts = "${config.client.circutBreaker.maxFailures}"
   )
   public Single<JsonNode> callClient() {
     <...>
   }
 }

在测试中,我注入 MyCient 并使用 wiremock 模拟端点。因此,如果我在 wiremock it opens the circuit and to close I need to wait resetTimeout` 中抛出错误或模拟超时。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)