الرسائل والتوصيل

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

الأهداف

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

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

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

السلوك

Discord

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

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,
      },
    },
  },
}

ملاحظات

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

البث والتجزئةطابور الأوامر