قاطع دورة لبوابة الذكاء الاصطناعي
أي نظام يعتمد على خدمة خارجية سيشهد توقفها يوما ما. المهم كيف يتصرف نظامك في تلك اللحظة.
السلوك السيئ الافتراضي
يفشل الطلب فتعيد المحاولة، ثم تعيدها، وكل محاولة تنتظر مهلة كاملة قبل أن تستسلم. النتيجة طوابير تتراكم، وعمّال محجوزون في الانتظار، وحصة تُستهلك في طلبات لن تنجح.
وحين تعود الخدمة أخيرا، ينهال عليها كل ما تراكم دفعة واحدة فتسقط مرة أخرى.
نمط القاطع
ثلاث حالات:
- مغلق: كل شيء يمر بشكل طبيعي.
- مفتوح: بعد عدد محدد من الإخفاقات المتتالية يتوقف القاطع عن المحاولة أصلا، ويرد بالفشل فورا دون انتظار.
- نصف مفتوح: بعد مهلة يسمح بمحاولة واحدة فقط. إذا نجحت عاد مغلقا، وإذا فشلت عاد مفتوحا.
لماذا الحالة الثالثة هي المهمة
بدونها ستفتح البوابة دفعة واحدة على خدمة لم تتعاف بعد. المحاولة الواحدة تتحقق من حال الخدمة قبل أن يعود التدفق كاملا.
ما يجب أن يحدث حين يكون القاطع مفتوحا
القاطع وحده يقرر متى يتوقف عن الاتصال، والجزء الذي ينقذك فعلا هو مصير الطلب خلال فترة الفتح. عندي لا يضيع الطلب: يُحفظ في طابور ويُعاد لاحقا، ويُبلَّغ الموظف أن هناك ما ينتظر.
فإذا رفض القاطع الطلب ولم يلتقطه شيء بعده، خسر المستخدم على أي حال، وكل ما تغير أن الخطأ وصل أسرع.
أرقام عملية
خطأ عابر واحد لا يكفي لفتح القاطع، فالأخطاء العابرة تحدث دائما. العتبة عندي خمسة إخفاقات متتالية، ومهلة الانتظار قبل نصف الفتح تقاس بالدقائق، لأن الخدمة التي سقطت للتو تحتاج وقتا حقيقيا حتى تستقر.