Ana içeriğe atla

Yeniden deneme ilkesi

Hedefler

  • Çok adımlı akış başına değil, HTTP isteği başına yeniden dene.
  • Yalnızca geçerli adımı yeniden deneyerek sıralamayı koru.
  • İdempotent olmayan işlemlerin yinelenmesini önle.

Varsayılanlar

  • Deneme sayısı: 3
  • En yüksek gecikme sınırı: 30000 ms
  • Jitter: 0.1 (yüzde 10)
  • Sağlayıcı varsayılanları:
    • Telegram en düşük gecikme: 400 ms
    • Discord en düşük gecikme: 500 ms

Davranış

Discord

  • Yalnızca hız sınırı hatalarında yeniden dener (HTTP 429).
  • Kullanılabiliyorsa Discord retry_after değerini, aksi takdirde üstel geri çekilmeyi kullanır.

Telegram

  • Geçici hatalarda yeniden dener (429, zaman aşımı, bağlanma/sıfırlama/kapanma, geçici olarak kullanılamıyor).
  • Kullanılabiliyorsa retry_after değerini, aksi takdirde üstel geri çekilmeyi kullanır.
  • Markdown ayrıştırma hataları yeniden denenmez; düz metne geri düşerler.

Yapılandırma

Yeniden deneme ilkesini ~/.openclaw/openclaw.json içinde sağlayıcı başına ayarlayın:
{
  channels: {
    telegram: {
      retry: {
        attempts: 3,
        minDelayMs: 400,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
    discord: {
      retry: {
        attempts: 3,
        minDelayMs: 500,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
  },
}

Notlar

  • Yeniden denemeler istek başına uygulanır (mesaj gönderimi, medya yükleme, tepki, anket, çıkartma).
  • Bileşik akışlar tamamlanmış adımları yeniden denemez.