TsgcWSCircuitBreakerProperties › Fallback

Fallback 属性

熔断器打开时通过 OnFallback 返回的备用有效载荷。

语法

property Fallback: TsgcCircuitBreakerFallback read FFallback
      write SetFallback;

默认值

备注

Fallback.Enabled 为 True 且 Execute/ExecuteWithResult 拒绝某次调用(或 HTTP API 客户端集成检测到 Open 断路)时,OnFallback 事件触发,携带从已配置回退源初始化的响应。处理器可在响应返回给调用者之前修改 aResponse var 参数。子属性:Enabled(默认 False,被拒绝的调用直接返回而不触发 OnFallback)、CachedResponse(断路器处于 Open 状态时返回的静态载荷,优先于 CustomMessage)、CustomMessage(CachedResponse 为空时使用的回退载荷)和 UseLastSuccess(为 True 时,返回该键观察到的最后一次成功响应,而非静态载荷)。典型用途:返回缓存的最后已知良好响应或静态"维护模式"JSON 体,以便下游调用者获得降级但可用的行为。

示例

// Serve a safe JSON body when the circuit for an upstream API is Open
sgcWSCircuitBreaker1.Fallback.Enabled := True;
sgcWSCircuitBreaker1.Fallback.CachedResponse :=
  '{"error":"service unavailable","retry_after":30}';
sgcWSCircuitBreaker1.Fallback.CustomMessage :=
  '{"error":"ai service temporarily offline"}';
sgcWSCircuitBreaker1.Fallback.UseLastSuccess := True;

返回属性