مهل الأطوار والموعد النهائي الكلي لطلب الوكيل
افصل حدود كل طور عن الميزانية الزمنية الكلية لعملية تمر عبر وكيل، بما في ذلك إعادة المحاولات واستهلاك الاستجابة.
تحدّ مهل الاتصال والقراءة من انتظارات بعينها. لكنها لا تحدّ بالضرورة من عملية كاملة تمر عبر وكيل، وقد تشمل أيضًا الانتظار في الطابور وDNS وCONNECT وTLS وإعادة التوجيه وإعادة المحاولات واستهلاك الاستجابة.
| الحد | النطاق |
|---|---|
| مهلة الاتصال | إقامة الاتصال وفق تعريف العميل |
| مهلة خمول القراءة | انتظار دون التقدّم المتوقع في البيانات |
| الموعد النهائي الكلي | المدة المسموحة للعملية الكاملة |
ابدأ بميزانية العملية
استخدم الموعد النهائي الكلي الموثّق لدى العميل أو آلية الإلغاء حيث تتوفر، إلى جانب حدود الأطوار. يفصل HTTPX بين انتظار البركة والاتصال والقراءة والكتابة. وتصرّح مكتبة Requests بأن مهلتها ليست حدًّا للتنزيل الكامل. ويوفّر curl مهلة نقل إجمالية.
على سبيل المثال، مهمة مدتها عشرون ثانية تنفق ثانيتين في الطابور، وثلاثًا في إقامة مسارها، وستًّا في تبادل لم ينجح. يتبقى لمحاولتها التالية نحو تسع ثوانٍ. ومنح كل إعادة محاولة عشرين ثانية جديدة من شأنه أن يتجاهل الميزانية الأصلية.
استخدم ساعة رتيبة لحساب الزمن المنقضي. ومرّر موعدًا نهائيًا مطلقًا أو مدة متبقية عبر الطبقات التي تملك العمل. وإذا كانت آلية الإلغاء المحيطة لا تستطيع فرض النطاق المطلوب، فاجعل هذا القيد صريحًا.
ضمّن الجسم والتنظيف
قد تترك دالة تعود بعد الترويسات قراءة الجسم خارج مهلتها. حدّد ما إذا كانت الميزانية تغطي الإقامة أو تنزيلًا كاملًا محدودًا أو بثًّا طويل الأمد بقواعد حياة منفصلة. مثال حديث في .NET لإلغاء الترويسات والجسم يحمل رمزًا واحدًا عبر المرحلتين.
اترك وقتًا لإغلاق الاستجابات وإتمام الإلغاء قبل أن تستهلك محاولة تالية سعة البركة. وسجّل الطور الفاشل والزمن المنقضي؛ فالقراءات المتكررة التي تحقق تقدمًا قد تُرضي حدود الخمول بينما تستغرق المهمة الكلية وقتًا أطول من اللازم.
الموعد النهائي للبوابة تجاه المنبع يخص تلك البوابة. وبعد أن تعيد 504، لا يمكن لميزانية العميل غير المستخدمة أن تمدّد المحاولة المكتملة. أبقِ كل مؤقت مرتبطًا بمالكه عند تحديد الإعداد الذي يحتاج إلى تصحيح.