إعادة المحاولة
يُعدّ التسليم ناجحاً حين يردّ مسارك بـ 2xx خلال 5 ثوانٍ. أي شيء آخر يُعاد مرتين بتأخير متزايد، وكل محاولة صف في سجل التسليم بلوحة التحكم.
01الجدول
ثلاث محاولات في المجموع: فوراً، ثم بعد 30 ثانية، ثم بعد دقيقتين من تلك. بعد الفشل الثالث يُعلَّم التسليم فاشلاً ولا تجري محاولات تلقائية أخرى.
| المحاولة | التأخير |
|---|---|
1
|
0 s
|
2
|
+30 s
|
3
|
+120 s
|
02ما الذي يُعدّ فشلاً
كل محاولة تنتظر حتى 5 ثوانٍ للاتصال وللحصول على رد.
| الحالة | المعنى |
|---|---|
2xx
|
تم التسليم. الجسم يُتجاهل. |
3xx، 4xx، 5xx
|
فشل؛ يُعاد. الحالة 410 ليست استثناء — احذف المسار من لوحة التحكم لإيقاف التسليمات. |
انتهاء المهلة
|
لا رد خلال 5 ثوانٍ. ردّ أولاً واعمل لاحقاً. |
خطأ اتصال
|
DNS أو TLS أو اتصال مرفوض. يُعاد كأي فشل. |
03سجل التسليم
لوحة التحكم ← Webhooks تعرض آخر تسليمات كل مسار مع الحدث وحالة HTTP وزمن الرد ورقم المحاولة. وصفحة تفاصيل المكالمة تعرض تسليمات تلك المكالمة.
التسليم pending ما دامت محاولة أخرى مجدولة، وdelivered عند أول 2xx، وfailed بعد المحاولة الأخيرة. التسليم الفاشل يمكن إعادته يدوياً من السجل؛ يُرسل الجسم نفسه بوصفه المحاولة + 1.
delivered
pending
failed
04التعامل مع التكرارات
إعادة المحاولة ترسل الجسم نفسه بالضبط — id نفسه وcreated_at نفسه وdata نفسها — بتوقيع جديد. إن ردّ مسارك ببطء لكنه أنجز عمله، فسيرى الحدث مرتين.
خزّن id الأحداث التي عالجتها وتجاهل المكرر. لحدث call.ended، تحديث سجل إلى حالة نهائية متكرر-آمن بطبيعته؛ أما إرسال إشعار فلا، فاحرسه.