TsgcWSCircuitBreaker › 事件 › OnFailureRecorded
每次针对断路器记录故障后,在 Classification 接受该故障后触发。
property OnFailureRecorded: TsgcCircuitBreakerOnFailureRecorded;
// TsgcCircuitBreakerOnFailureRecorded = procedure(Sender: TObject; const aKey, aException: string) of object
—
在 RecordFailure/RecordMessageError(或 HTTP API 客户端集成)记录失败并经 Classification 确认应计入之后触发。aKey 参数标识断路器,aException 携带传递给 RecordFailure 的 ClassName: Message 文本——可用于关联上游事件跟踪、发送结构化日志或转发到 Seq/Sentry/Application Insights 等接收端。对于 Classification 选择忽略的失败,此事件不触发;并且它在 EvaluateTransition 决定是否打开断路器之前触发——如需状态变化本身的通知,请使用 OnStateChange。在记录线程上同步运行。
procedure TForm1.CircuitFailureRecorded(Sender: TObject;
const aKey, aException: string);
begin
Log(Format('Failure on %s: %s', [aKey, aException]));
// Stream to structured logger / incident tracker
SeqLogger.Error('circuit.failure',
['key', aKey, 'exception', aException]);
end;