TsgcWSCircuitBreaker方法 › RecordSuccess

RecordSuccess 方法

记录一次成功调用;当试验调用成功时,将状态从 HalfOpen 推进为 Closed。

重载

重载 1

语法

procedure RecordSuccess(const aKey: string);

参数

名称类型描述
aKeyconst string成功所属的电路键,通常是上游服务的主机名。

备注

更新滚动窗口计数器,递增 Metrics.TotalSuccesses 和 Metrics.TotalCalls,并评估状态转换机。在 HalfOpen 状态下,每次记录成功都会减少剩余的试验预算;当预算归零时,断路器从 HalfOpen 转换为 Closed 并触发 OnStateChange。仅当您自行管理调用(而非通过 Execute)时,才需要显式调用 RecordSuccess;HTTP API 客户端集成已在每个 2xx 响应时自动记录成功。

示例

// Manual accounting after a custom REST call
try
  vResponse := MyHTTPClient.Get(vURL);
  sgcWSCircuitBreaker1.RecordSuccess(vHost);
except
  on E: Exception do
    sgcWSCircuitBreaker1.RecordFailure(vHost, E.Message);
end;

重载 2

语法

procedure RecordSuccess;

备注

针对 DefaultKey 记录一次成功的快捷方式。当单个断路器保护恰好一个逻辑依赖项,且每次调用传递密钥没有附加价值时使用。在调用之前将 DefaultKey 设置为有意义的标签(例如 'payment-gateway'),以使 Metrics 和 OnStateChange 具有可读性。

示例

sgcWSCircuitBreaker1.DefaultKey := 'payment-gateway';
try
  ChargeCustomer;
  sgcWSCircuitBreaker1.RecordSuccess;
except
  on E: Exception do
    sgcWSCircuitBreaker1.RecordFailure(E.Message);
end;

返回方法