TsgcWSCircuitBreakerEvents › OnCallRejected

OnCallRejected 事件

当断路器因电路 Open 或 HalfOpen 试验配额耗尽而拒绝调用时触发此事件。

语法

property OnCallRejected: TsgcCircuitBreakerOnCallRejected;
// TsgcCircuitBreakerOnCallRejected = procedure(Sender: TObject; const aKey, aReason: string) of object

默认值

备注

每次 IsCallAllowed、Execute、ExecuteWithResult、IsConnectionAllowed 或 IsMessageAllowed 返回 False 时触发。aKey 参数标识电路(通常是上游服务的主机名或 ServerKey),aReason 是简短的人类可读字符串,例如 'Circuit Open''HalfOpen trial budget exhausted'。在事件触发之前,Metrics.TotalRejected 会递增。使用此事件记录被拒绝的流量、发出告警指标或更新 UI 中可见的降级模式指示器。在进行调用的线程上同步运行,请保持处理程序简短高效。

示例

procedure TForm1.CircuitCallRejected(Sender: TObject;
  const aKey, aReason: string);
begin
  Log(Format('Rejected call for %s (%s)', [aKey, aReason]));
  IncMetric('circuit.rejected.' + aKey);
end;

返回事件