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

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

الأهداف

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

الإعدادات الافتراضية

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

السلوك

Discord

  • يعيد المحاولة فقط عند أخطاء تحديد المعدّل (HTTP 429).
  • يستخدم retry_after عند توفره، وإلا فيستخدم التراجع الأُسّي.

Telegram

  • يعيد المحاولة عند الأخطاء العابرة (429، انتهاء المهلة، الاتصال/إعادة الضبط/الإغلاق، غير متاح مؤقتًا).
  • يستخدم retry_after عند توفره، وإلا فيستخدم التراجع الأُسّي.
  • لا تُعاد محاولة أخطاء تحليل 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,
      },
    },
  },
}

ملاحظات

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