问题描述
我正在使用Vertx的应用程序上工作。在其中,我有一个NetClient,并使用Vertx断路器持续保持与服务器的连接。我现在正在研究某种要求在某些时候取消部署这些Verticles的事物,但是当我这样做时,即使verticle.undeploy成功之后,由于某种原因,断路器仍然可以工作。
在取消部署之前,我曾尝试为Circuit Breaker调用close方法,但是即使如此,我仍然得到非常不一致的结果。第一次工作,但是第二次,断路器仍保持活动状态。
知道启动后是否有可能完全杀死断路器?
使用:Java 8和Vertx 3.8.1
解决方法
如果有人对此有一个好的且一致的解决方案,我很乐意更改它的选定答案,但是由于我没有看到任何答复,因此我将分享我最终在此所做的事情。
我基本上放弃了试图杀死断路器的尝试。相反,我在两者之间添加了逻辑以考虑其他状态。有了这个变量,我要么执行了所需的代码,要么在一个无限的等待循环中发送了断路器,直到收到外部请求以退出该循环并返回断路器循环为止。
也许这是更合乎逻辑的方法,坦率地说,我不确定,但是我能够实现此目标。