TsgcWSCircuitBreaker方法 › RecordMessageError

RecordMessageError 方法

服务器端钩子,在 ServerKey 上记录消息失败。

语法

procedure RecordMessageError(const aIP: string; const aException: string = '');

参数

名称类型描述
aIPconst string传递失败消息的连接的对端 IP 地址。用于日志记录和未来的每 IP 指标。
aExceptionconst string可选的异常文本(ClassName: Message),传递给 Classification,以便忽略服务器端业务错误。

备注

用于服务器端自我保护的 WebSocket 消息版故障记录器。委托给 RecordFailure(ServerKey, aException),IP 参数目前仅作为信息性参数。当处理失败时从服务器的 OnMessage 处理程序调用,以便断路器在服务器过载时(例如一批格式错误的消息或已崩溃的依赖下游)能够自我跳闸至 Open 状态。OnFailureRecorded 以 ServerKey 为键触发。当 Enabled 为 False 时立即返回。

示例

procedure TForm1.WSServerMessage(Connection: TsgcWSConnection;
  const Text: string);
begin
  try
    HandleMessage(Text);
    sgcWSCircuitBreaker1.RecordMessageSuccess(Connection.PeerIP);
  except
    on E: Exception do
    begin
      sgcWSCircuitBreaker1.RecordMessageError(Connection.PeerIP,
        Format('%s: %s', [E.ClassName, E.Message]));
      raise;
    end;
  end;
end;

返回方法