TsgcWSCircuitBreaker › 属性 › Recovery
管理 Open 状态断路器如何转换回 Closed 状态的半开重试策略。
property Recovery: TsgcCircuitBreakerRecovery read FRecovery
write SetRecovery;
—
断路器打开后,将在 CooldownSec 秒内保持 Open 状态并拒绝所有调用。冷却时间结束后,转换为 HalfOpen 状态,并允许 HalfOpenTrialCalls 次探测调用通过;若成功则关闭断路器,若有任何失败则重新打开并重启冷却计时器。子属性:CooldownSec(Open 转换至 HalfOpen 前的等待秒数,默认 30)、HalfOpenTrialCalls(HalfOpen 状态下允许的试验调用次数,默认 1)、AutoReset(状态转换时自动清除计数器,默认 True)和 MaxRetries(重试辅助程序使用的信息性上限;断路器本身不会自动重试,默认 3)。较长的冷却时间可保护正在挣扎的上游服务免受过早的流量冲击;较短的冷却时间则可使仅出现短暂故障的服务快速恢复。
// After opening: wait 30s, then allow 1 trial call, then decide
sgcWSCircuitBreaker1.Recovery.CooldownSec := 30;
sgcWSCircuitBreaker1.Recovery.HalfOpenTrialCalls := 1;
sgcWSCircuitBreaker1.Recovery.AutoReset := True;
sgcWSCircuitBreaker1.Recovery.MaxRetries := 3;