الانتقال إلى المحتوى الرئيسي

سياسة إعادة المحاولة

الأهداف

  • إعادة المحاولة لكل طلب HTTP، وليس لكل تدفق متعدد الخطوات.
  • الحفاظ على الترتيب عبر إعادة محاولة الخطوة الحالية فقط.
  • تجنب تكرار العمليات غير القابلة للتطابق.

القيم الافتراضية

  • عدد المحاولات: 3
  • الحد الأقصى للتأخير: 30000 ms
  • Jitter: 0.1 ‏(10 بالمئة)
  • القيم الافتراضية الخاصة بالموفّرين:
    • أقل تأخير لـ Telegram: ‏400 ms
    • أقل تأخير لـ Discord: ‏500 ms

السلوك

Discord

  • يعيد المحاولة فقط عند أخطاء حدود المعدل (HTTP 429).
  • يستخدم retry_after الخاص بـ Discord عند توفره، وإلا فيستخدم exponential backoff.

Telegram

  • يعيد المحاولة عند الأخطاء العابرة (429، timeout، connect/reset/closed، غير متاح مؤقتًا).
  • يستخدم retry_after عند توفره، وإلا فيستخدم exponential backoff.
  • لا تتم إعادة محاولة أخطاء تحليل Markdown؛ بل تعود إلى النص العادي.

الإعداد

اضبط سياسة إعادة المحاولة لكل موفّر في ~/.openclaw/openclaw.json:
{
  channels: {
    telegram: {
      retry: {
        attempts: 3,
        minDelayMs: 400,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
    discord: {
      retry: {
        attempts: 3,
        minDelayMs: 500,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
  },
}

ملاحظات

  • تنطبق عمليات إعادة المحاولة على كل طلب على حدة (إرسال رسالة، أو رفع وسائط، أو تفاعل، أو استطلاع، أو ملصق).
  • لا تعيد التدفقات المركبة محاولة الخطوات المكتملة.