BitzOrcas 尚未包含 HTTP 弹性策略(基于 Polly 的重试、熔断器或超时)用于出站 HTTP 调用。Webhook 投递系统有自己的重试逻辑,但没有共享的弹性管道。
当前状态
出站 HTTP 调用直接使用 HttpClient,无弹性策略:
// Webhook 投递有自己的重试逻辑public class DefaultWebhookHttpClient : IWebhookHttpClient{ // 直接使用 HttpClient,在 WebhookDeliveryService 中自定义重试}外部请求日志
ExternalRequestLoggingHandler 为出站 HTTP 调用提供审计日志:
// 为 HTTP 客户端请求注册 — 日志记录方法、URL、状态、持续时间计划实现
| 策略 | 描述 |
|---|---|
| 重试 | 瞬态故障的指数退避(5xx、超时) |
| 熔断器 | 连续 N 次失败后断路 |
| 超时 | 每请求超时带取消 |
| 限流器 | 每下游限流 |
目标配置
{ "HttpResilience": { "Default": { "MaxRetries": 3, "BackoffBase": "00:00:02", "CircuitBreakerFailureThreshold": 5, "Timeout": "00:00:30" } }}Webhook 重试(已有)
Webhook 投递系统有自己的 WebhookRetryPolicy:
public class WebhookRetryPolicy{ public int MaxRetries { get; } = 5; public TimeSpan InitialDelay { get; } = TimeSpan.FromSeconds(5); public double BackoffMultiplier { get; } = 2.0;}这可作为更广泛弹性实现的参考模式。
另见
- Webhooks 模块 — 已有的重试实现