首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Polly和wrapped策略

Polly和wrapped策略
EN

Stack Overflow用户
提问于 2017-07-10 22:06:39
回答 1查看 1.4K关注 0票数 1

我是新的波莉,并试图创造一个断路器与后备和超时政策。我的设置如下所示,所有策略都是“全局的”,因此它们在调用之间保持状态:

代码语言:javascript
复制
_timeoutPolicy = 
Policy.Timeout(TimeSpan.FromMilliseconds(1500),TimeoutStrategy.Pessimistic);
_circuitBreaker = Policy.Handle<Exception>()
                  .AdvancedCircuitBreaker(
                           failureThreshold:0.5,
                           samplingDuration: TimeSpan.FromSeconds(20),
                           minimumThroughput: 5,
                           durationOfBreak: TimeSpan.FromSeconds(30)
                  );

_policy = Policy<ServiceResponse<T>>
    .Handle<Exception>()
    .Fallback(() => new ServiceResponse<T>()
    {
        IsValid = false,
        Message = "Tjänsten fungerar inte"
    }).Wrap(_circuitBreaker).Wrap(_timeoutPolicy);

稍后,我使用_policy调用外部webapi如下:

代码语言:javascript
复制
_policy.Execute(() => SomeWebApiCallMethod<T>());

我想要实现的是,如果断路器策略与超时策略相结合,启动回退响应.在当前的设置下,它可以工作第一轮,即在后援启动后的20秒内发生5错误.我等待30瑞典克朗,现在只有一次尝试,那是超过1500毫秒的后撤再次启动(?)但这是为了早期,因为断路器策略应该在20秒内5次尝试,然后再回退.如果有人能指点我如何解决这个问题,我会很高兴的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 22:39:52

初始答案(可在问题澄清后更新)

回复:

我等待30瑞典克朗,现在只有一次尝试,那是超过1500毫秒的后撤再次启动(?)但这还为时尚早,因为断路器策略应该在20秒内进行5次尝试,然后再回退。

断路器再一次因断断期后再次发生故障,是设计的,预期的行为。断路器没有直接向关闭状态过渡(并受定义为闭合状态的指标管理),断路器在断续期后首先进入“半开”状态,下一次单次呼叫被视为测试呼叫,以确定被叫系统的健康状况:如果单个试呼失败,则电路再次中断。这里有详细的文件

回复:

断路器策略应在20秒内做出5次尝试。

断路器不会尝试,它们测量并允许在断路前设定故障数/比率。如果你希望你的Polly策略也能为你安排重试,那么把RetryPolicy和断路器结合起来,比如在此描述

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45022385

复制
相关文章

相似问题

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