Faraday: يقوم محول Net :: HTTP بإعادة محاولة الطلبات تلقائيًا

تم إنشاؤها على ٢١ فبراير ٢٠١٨  ·  3تعليقات  ·  مصدر: lostisland/faraday

معلومات أساسية

  • إصدار فاراداي: أي
  • إصدار روبي: 2.5+

وصف المشكلة

عند استخدام Net::HTTP كمحول ، يفاجأ المستخدمون باستراتيجية إعادة المحاولة المقدمة من Net::HTTP . يؤدي هذا إلى ظهور "مشكلات" مختلفة (مثل # 612 و # 771).
ليس هناك الكثير الذي يمكننا القيام به لروبي <= 2.4 ، ولكن روبي 2.5 يوفر تكوينًا جديدًا max_retries لـ Net::HTTP لذا يجب على Faraday ضبط ذلك تلقائيًا عند توفره.

خطوات التكاثر

راجع العدد 612 ورقم 771.

feature help wanted

ال 3 كومينتر

لقد كنت أبحث في هذه القضية. أحد الأساليب المذكورة في # 771 هو تعيين الإعداد الافتراضي على 0 ، ولكن قم بتغييره بناءً على مقدار عمليات إعادة المحاولة التي تم تكوينها. يجب أن نجعل البرنامج الوسيط Retry على دراية بالمحول الأساسي (لأن بعض المحولات قد لا تدعم هذا) ، ونطبق هذا المنطق بشكل مشروط في env . سيتعين على المحول أيضًا معرفة مقدار عمليات إعادة المحاولة.

كبديل للنهج المذكور ، يمكننا تعيينه على عدم القيام بإعادة المحاولة ، بدلاً من الاحتفاظ بمنطق إعادة المحاولة محصورًا في البرامج الوسيطة Retry. مهما كانت النتيجة ، سأكون أكثر من سعيد لاختيار هذا iMacTia .

كنت أفكر بالتأكيد في الخيار الثاني.
لدينا بالفعل البرامج الوسيطة Retry التي يمكنها الاهتمام بإعادة محاولة الطلبات الفاشلة.
يجب ألا تعيد المحولات (في هذه الحالة Net :: HTTP) محاولة إعادة الطلبات من تلقاء نفسها.

كل ما نحتاج إلى القيام به في هذه الحالة هو إخبار محول Net :: HTTP بتعيين max_retries إلى 0 ، إذا كانت هذه الخاصية متاحة ، بالطبع

iMacTia - لم أستطع الموافقة أكثر. في هذه الحالة ، سألتقط هذا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Lewiscowles1986 picture Lewiscowles1986  ·  4تعليقات

subvertallchris picture subvertallchris  ·  5تعليقات

ryanbyon picture ryanbyon  ·  3تعليقات

jeffb-stell picture jeffb-stell  ·  5تعليقات

mattmill30 picture mattmill30  ·  4تعليقات