Gunicorn: سؤال: ماذا يحدث إذا كان جميع العمال مشغولين وورد طلب؟

تم إنشاؤها على ٢٨ يناير ٢٠١٩  ·  3تعليقات  ·  مصدر: benoitc/gunicorn

أظن إما:

  • يتم حظر الطلب حتى يتحرر العامل ، أو
  • فشل الطلب (على سبيل المثال: مع استجابة مباشرة لانتهاء مهلة بوابة HTTP 504 ، أو إغلاق اتصال تم الإبلاغ عنه على أنه انتهاء مهلة بوابة HTTP 504 بواسطة وكيل رئيسي مثل Nginx)

(أحاول نشر هذا السؤال في القائمة البريدية لـ Gunicorn ، لكنني لم أتمكن من العثور على إرشادات واضحة حول كيفية القيام بذلك مباشرةً. لذا آمل أن يكون إنشاء مشكلة في Github هو المسار الصحيح.)

Question Discussion

ال 3 كومينتر

إنه مكان جيد لذلك :) يمكنك أن تجد بعض المعلومات هناك بالفعل: http://docs.gunicorn.org/en/stable/design.html

على أي حال سوف يعتمد. مع Gunicorn وراء NGINX ، حتى عامل المزامنة قادر على قبول اتصال متعدد. سيعالج الطلبات N بشكل متزامن (حيث N هو عدد العمال) بينما يمكنك الانتظار في المخزن المؤقت nginx. إنني في أغلب الأحيان يكون هذا كافيًا لتشغيل موقع ويب كبير جدًا به أكثر من 10 آلاف اتصال متزامن.

لاستخدامات أخرى لديك العمال غير المتزامنين. بينما ستستمر NGINX أو أي وكيل قادر على تخزين الاتصالات مؤقتًا في مساعدة هؤلاء العمال ، سيسمح لـ Gunicorn بمعالجة المزيد من الاتصالات المتزامنة أو إبقاء بعض الاتصالات مفتوحة لفترة طويلة.

آمل أن أكون قد أجبت على سؤالك.

للإجابة عن Gunicorn فقط:

يحدد إعداد backlog مدى عمق تراكم الاستماع إلى نظام التشغيل. إذا كان التراكم ممتلئًا ، فسيتم رفض الطلب من قبل نظام التشغيل وستتلقى البوابة فشلًا في الاتصال المنبع. إذا لم يكن العمل المتراكم ممتلئًا ، فسيفتح نظام التشغيل الاتصال ، ولكن لن يتم التعامل معه بواسطة Gunicorn حتى يصبح عامل Gunicorn جاهزًا لقبول الطلب. قد تقوم البوابة بإرجاع مهلة المنبع إذا لم يعالج Gunicorn الطلب بسرعة.

إذا وجدت أن لديك الكثير من المهلات الأولية وكنت تعمل باستخدام وكيل عكسي أمام Gunicorn ، فقد ترغب في تقليل الأعمال المتراكمة بحيث يمكن أن يفشل وكيلك بشكل أكثر كفاءة.

شكرا يا رفاق. هذه الإجابات تساعد.

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