अपाचे/mod_wsgi के लिए डिफ़ॉल्ट एक प्रक्रिया है जो कि आवेदन पत्र की आवश्यकता है के लिए पहले केवल अनुरोध पर लोड आवेदन कोड है। तो, प्रक्रिया शुरू होने पर और केवल पहला अनुरोध न होने पर, आपके कोड को प्रीलोड करने के लिए mod_wsgi को कॉन्फ़िगर करना पहला चरण है। यह WSGIImportScript निर्देश का उपयोग कर mod_wsgi 2.X में किया जा सकता है।
डेमॉन मोड है, जो बेहतर विकल्प वैसे भी है यह मानकर, इसका मतलब है आप की तरह कुछ होगा:
# Define process group.
WSGIDaemonProcess django display-name=%{GROUP}
# Mount application.
WSGIScriptAlias//usr/local/django/mysite/apache/django.wsgi
# Ensure application preloaded on process start. Must specify the
# process group and application group (Python interpreter) to use.
WSGIImportScript /usr/local/django/mysite/apache/django.wsgi \
process-group=django application-group=%{GLOBAL}
<Directory /usr/local/django/mysite/apache>
# Ensure application runs in same process group and application
# group as was preloaded into on process start.
WSGIProcessGroup django
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
जब आप के बजाय स्पर्श WSGI स्क्रिप्ट फ़ाइल है, जो केवल पर जाँच का एक कोड परिवर्तन किया है, अगला अनुरोध, इसके बजाय डिमन प्रक्रिया समूह में प्रक्रियाओं के लिए एक SIGINT संकेत भेजें।
WSGIDaemonProcess के लिए 'प्रदर्शन-नाम' विकल्प के साथ आप बीएसडी शैली 'ps' प्रोग्राम का उपयोग कर कौन सी प्रक्रियाओं की पहचान कर सकते हैं। 'प्रदर्शन-नाम' सेट '% {GROUP}' पर सेट किया गया है, 'ps' आउटपुट को प्रक्रिया नाम के रूप में '(wsgi: django)' दिखाना चाहिए। प्रक्रिया आईडी की पहचान करें और करें:
kill -SIGINT pid
वास्तविक प्रक्रिया आईडी के साथ स्वैप 'पिड'। यदि डेमॉन प्रक्रिया समूह में एक से अधिक प्रक्रियाएं हैं, तो उन सभी को सिग्नल भेजें।
सुनिश्चित नहीं है कि 'killall' का उपयोग एक चरण में करने के लिए किया जा सकता है।
# Define process group.
WSGIDaemonProcess django display-name=%{GROUP}
# Mount application and designate which process group and
# application group (Python interpreter) to run it in. As
# process group and application group named, this will have
# side effect of preloading application on process start.
WSGIScriptAlias//usr/local/django/mysite/apache/django.wsgi \
process-group=django application-group=%{GLOBAL}
<Directory /usr/local/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
है, कर सकते हैं विशिष्ट प्रक्रिया के रूप में अलग WSGIImportScript निर्देश उपयोग करने की आवश्यकता: मैं MacOS एक्स
पर यह कर mod_wsgi 3.x में विन्यास सरल किया जा सकता है और इसके बजाय का उपयोग कर सकते के साथ समस्या थी समूह और अनुप्रयोग समूह को डब्लूएसजीआईस्क्रिप्ट एलीआस के तर्क के रूप में इसके बजाय साइड इफेक्ट के साथ यह प्रीलोड लोड होगा।
वास्तव में, एक पुनरारंभ स्क्रिप्ट लिखना जो अपाचे को पुनरारंभ करता है और 5 बार 'wget' चलाता है, मेरे लिए उचित दृष्टिकोण की तरह लगता है। –
हालांकि आपको सावधान रहना पड़ सकता है कि उनमें से प्रत्येक कॉल 'wget' को एक अलग प्रक्रिया द्वारा संभाला जाता है - आपको शायद इसे सुनिश्चित करने के लिए एक अच्छी संख्या में लोड करना होगा। –
मैंने इसका परीक्षण किया है और वेबफैक्शन पर अपाचे कॉन्फ़िगरेशन (जहां ऐप होस्ट किया गया है) उदाहरणों के माध्यम से चक्र करता है, इसलिए 5 'wget' की चाल – Jiaaro