سؤال

أعاني من صعوبة في العثور على وثائق حول عملية Gunicorn / Django / دورة حياة الموضوع.

دعونا نقول خيط الخفيرة المنتفخة خلال process_Response () هوك الوسيطة. AFAIK هذا الموضوع لا يمنع استجابة HTTP. ولكن، هل حظر الخيط الذي تم فرضه؟ هل ينتظر GARICORN لإنجاز هذا الموضوع للانضمام إليه مرة أخرى إلى الخيط الرئيسي قبل أن تكون عملية العامل جاهزة للتعامل مع طلب آخر، أو سيتم فصل هذا الموضوع؟

data_collection / tasks.py:

giveacodicetagpre.

data_collection / middleware.py:

giveacodicetagpre.

مزيد من التفاصيل:

لقد كتبت فئة متوسطة مخصصة لإرسال بعض البيانات إلى قائمة انتظار خارجية (Rabbitmq)، والتي يتم استرجاعها لاحقا ومعالجتها بشكل غير متزامن من قبل عامل الكرفس. لا أريد استدعاء هذه الوكالة المبتكرة على سلك لمنع استجابة العميل، لذلك قمت بإلغاء هذه الوظيفة (add_event.delay () في مؤشر ترابط "الخفي" (a la http://www.artfulcode.net/articles/threading-django/ ). قد يحتمل أن يعمل هذا الموضوع لفترة طويلة، إذا كان هناك انقطاع شبكة وسياسة المحاولة له حد طويل. في هذه الحالة، هل ستنظر هذه المواضيع في عمليات أعمالي Gunicorn؟

قرأت هذا السؤال، لكنني لست متأكدا مما إذا كان موضوعي يتداخل مع "حلقة العامل الرئيسية": خطر على استمرار غير ديمون) المواضيع في تطبيق Django / Gunicorn؟

هل كانت مفيدة؟

المحلول

لا. لا يوجد شيء خاص عن المواضيع المستأجرة من المواضيع الرئيسية للأعواد الجوية.

بمجرد أن تفرخ موضوعا، ستنفذ بالتوازي حتى الانتهاء أو الموت. لا يعرف Gunicorn عن المواضيع هذه المستأجرة من المواضيع الرئيسية للعامل، لذلك لا تحاول الانضمام إليها، وبالتالي فإن المواضيع الرئيسية للعامل لن تنتظر إكمال موضوع الأطفال. أيضا، فإن الخفي نيس للخيط ليس له أي تأثير؛ يعني الخفي ببساطة أن الخيط لن يسهم في "حيا - نيس" للعملية، وسيتم تشغيله حتى خروج العملية، عندما يتم قتلها تلقائيا.

إذا كنت ترغب في الانتظار حتى تكتمل هذه المواضيع قبل إعادة استخدام مؤشر ترابط العامل نفسه، عليك أن تفعل ذلك قبل تطبيق WSGI (على سبيل المثال django.core.handlers.wsgi.wsgihandler. __ اتصل __ () ). أو اكتب بعض البقعة القرد مجنون ل Gunicorn لتتبع خيوط الأطفال.

tl؛ Dr يمكنك بالتأكيد أن تنمو الخيوط دون ملزمة من خلال تفعيل مؤشرات ترابط الأطفال طويلة الأمد من المواضيع الرئيسية للعامل. من الأفضل أن تضمن أنها ستنتهي في غضون بعض الوقت ملزمة مع مهلات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top