أوقف حلقة تدوير الوكلاء عن العمل إلى الأبد
امنح مجموعة وكلاء Python ميزانية محاولات محدودة، وميّز إخفاقات الاتصال عن ردود الوجهة.
يمكن لمجموعة وكلاء أن تحوّل انقطاعًا بسيطًا إلى حلقة مشغولة. اختر عنوانًا، فتفشل، اختر آخر، فتفشل مجددًا. إذا كانت كل نقاط النهاية غير قابلة للوصول لأن شبكتك أنت متوقفة، فإن تغيير العناوين لن يعالج السبب أبدًا.
امنح العملية ميزانية قبل اختيار أول وكيل من مجموعتك أو قائمة الوكلاء المجانية: عدد محدود من المحاولات، ومهل اتصال وقراءة محدودة، وموعد نهائي للمهمة كاملة. تتحكم مهلة Requests في سلوك الاتصال أو القراءة الموثّق؛ وهي لا تحدّ بمفردها من حلقة تستمر في إصدار طلبات جديدة.
قرّر ما الذي يستحق محاولة أخرى
- يمكن لاتصال وكيل مرفوض أن يبرّر تجربة نقطة نهاية أخرى.
- يحتاج رد الوجهة إلى تفسيره الخاص. فتلقّي خطأ HTTP يثبت أن مسار طلب ما قد اكتمل.
- فشل مصادقة الوكيل يستدعي فحص نقطة النهاية والحساب بدلًا من ضرب الاعتمادات نفسها عبر قائمة متزايدة.
احتفظ بالاستثناء أو الحالة الأصلية مع سجل المحاولة. فرسالة نهائية تقول فقط «فشلت كل الوكلاء» تخفي ما إذا كانت الإخفاقات نفسها لها السبب ذاته.
فحص صحة كل وكيل قبل كل طلب حقيقي يضيف طلبًا آخر، ولا يضمن مع ذلك نجاح التالي. أعد استخدام معلومات الصحة الحديثة حيث تناسب المهمة، ثم دع العملية الحقيقية تبلّغ بنتيجتها.
قد تعيد المحاولة تنفيذ العمل
في الجلب للقراءة فقط، يكون الانتقال إلى وكيل آخر عادة أبسط من إعادة إرسال تقديم. وإذا انقطع الاتصال بعد إرسال عملية شراء أو تقديم نموذج، فقد تكون الوجهة قد عالجته بالفعل. اتبع آلية عدم التكرار لدى الخدمة وقواعد إعادة المحاولة في HTTP قبل إعادة تنفيذ العمل.
بمجرد استنفاد الميزانية، أعِد فشلًا مفيدًا. فالمهمة التي تتوقف مع أدلة أسهل في الإصلاح من مهمة تستمر في التدوير بهدوء حتى يلاحظها أحد.