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

الحالة أثناء التشغيل مقابل الحالة المستمرة في Home Assistant: ما الذي يجب أن يبقى بعد إعادة التشغيل؟
لا يحتفظ Home Assistant بكل قيمة مباشرة؛ إذ تؤدي الإعدادات والسجلات والحالات المحددة المستعادة وبيانات النشر أدوارًا مختلفة عند إعادة التشغيل.

كيف يُجري Home Assistant مصادقة الجلسات المحلية وعن بُعد؟
تستخدم جلسات Home Assistant المحلية وعن بُعد نموذج الهوية نفسه من جهة الخادم؛ إذ يغيّر الوصول عن بُعد المسار وحدود TLS، وليس تدفق الرموز...

لماذا قد تصبح استعلامات سجل Home Assistant بطيئة مع نمو بيانات المسجّل؟
يمكن أن يؤدي نمو بيانات Recorder إلى زيادة تكلفة استعلامات History عندما يشمل النطاق المطلوب عددًا أكبر من الصفوف، أو تزداد حالات فقدان ذاكرة...

