c# - Polly电路关闭时如何实现自定义方法
问题描述
我有返回的方法,IAsyncPolicy<HttpResponseMessage>
它有 2 个或更多策略以及CircuitBreaker
我的 DI 的一部分。
现在在我的实现类中,我添加了一个额外的 fallbackPolicy 来处理BrokenCircuitException
和包装它IAsyncPolicy<HttpResponseMessage>
(AsyncPolicy)
现在我在方法中完成了我的自定义方法实现DoWork()
,太棒了!!!感谢FallbackAsync
我发现BrokenCircuitException
异常的政策,这意味着当电路打开时。
var fallbackPolicy = Policy<HttpResponseMessage>
.Handle<BrokenCircuitException>()
.FallbackAsync(async (cancellationToken) => await DoWork()
.ConfigureAwait(false));
var policyWrap = fallbackPolicy.WrapAsync(AsyncPolicy);
// Send message to service
var response = await policyWrap.ExecuteAsync(() => HttpClient.PostAsync(...
现在的问题是,我们是否有任何策略或方法可以知道电路何时关闭并且我可以编写自己的方法实现?
在我的共享策略中,我也有 CircuitBreaker`,我在 DI 区域中写的有以下签名,但我不能在这里编写我的自定义方法实现。
onReset: () =>
{
Trace.TraceInformation("Web API Close");
},
解决方案
推荐阅读
- r - 优化 R 中的矩阵计算 - 可以避免 aperm?
- python - 为什么 ResultSet 对象没有“find”属性?
- npm - Yarn 无法通过 Github 包进行身份验证 - 但 npm 可以
- codeigniter - fsockopen():无法连接到 ssl://smtp.gmail.com:465(权限被拒绝)
- c++ - 来自文字的引用
- javascript - 循环的类数组失败
- python - 编写正则表达式时遇到问题
- python-3.x - 如何在 pyspark 中查找不合规的行
- c++ - C++ 确保 2D 向量在内存中是紧凑的
- android - 在 Android Studio 中包含静态库存档