दिलचस्प पोस्ट
.NET में दो बाइट सरणियों की तुलना करना अगर मैं फ़ायरबेस सरल यूज़रनेम और पासवर्ड प्रमाणीकरण का उपयोग करता हूं तो मैं उपयोगकर्ताओं की सूची कैसे वापस करूँ? सबप्रोसेस से "स्रोत" कमांड को कॉल करना। पोपेन IPhone ऐप को वेबपेज के लिए सुरक्षित https एन्क्रिप्शन स्ट्रिंग से विशेष वर्णों को निकालने का सबसे कारगर तरीका मैं RichTextBox में एक छवि कैसे सम्मिलित कर सकता हूं? ग्लास फलक पर घटक रखकर जावास्क्रिप्ट में एक तत्व पर मैं प्रोग्राममैटिक रूप से कैसे क्लिक करूं? क्या C ++ का समर्थन संकलन समय काउंटर? हम Typeahead.js में कैसे रिमोट सेट करते हैं? PHP: स्ट्रिंग में सभी गैर प्रिंट करने योग्य वर्ण कैसे निकालें? हास्केल की स्ट्रीम फ्यूजन क्या है गिट में पुरानी प्रतिबद्धता का टाइमस्टैम्प कैसे बदल सकता है? जावास्क्रिप्ट / jQuery के साथ स्टाइलशीट (एक <link>) को निकालकर या बदलना प्रत्येक जावास्क्रिप्ट प्रोग्रामर को क्या जानना चाहिए?

क्या मैं सिर्फ फ्लास्क ऐप.रन () का इस्तेमाल करके एक से अधिक ग्राहकों की सेवा कर सकता हूं?

मुझे पता है कि मैं फ्लास्क अपाचे या अन्य वेब सर्वर से लिंक कर सकता हूं लेकिन, मैं फ्लास्क को एक स्टैंडअलोन सर्वर के रूप में चलाने के बारे में सोच रहा था, जो एक साथ कई ग्राहकों को सेवा प्रदान करता था।

क्या यह संभव है? क्या मुझे कई थ्रेड्स को संभालना और उन्हें प्रबंधित करना है?

वेब के समाधान से एकत्रित समाधान "क्या मैं सिर्फ फ्लास्क ऐप.रन () का इस्तेमाल करके एक से अधिक ग्राहकों की सेवा कर सकता हूं?"

flask.Flask.run अतिरिक्त कुंजीशब्द तर्क ( **options ) स्वीकार करता है कि यह werkzeug.serving.run_simple लिए आगे बढ़ाता है – उन दो तर्क threaded होते हैं (जो आपको थ्रेडिंग को सक्षम करने के लिए True पर सेट कर सकते हैं) और processes (जो कि आप एक से अधिक संख्या में werkzeug करने के लिए अनुरोध को संभालने के लिए एक से अधिक प्रक्रिया अंडे)। तो अगर आप ऐसा करते हैं:

 if __name__ == '__main__': app.run(threaded=True) # Alternately # app.run(processes=3) 

फ्लास्क वेरकेज़ुग को थ्रेडिंग का उपयोग करने के लिए और आवक अनुरोधों को संभालने के लिए तीन प्रक्रियाओं को अंडरवियर करने के लिए कहेंगे।

कहा जा रहा है कि, Werkzeug की serving.run_simple मानक पुस्तकालय के wsgiref पैकेज wsgiref है – और उस पैकेज में WSGI के एक संदर्भ कार्यान्वयन शामिल है, नहीं उत्पादन तैयार वेब सर्वर यदि आप उत्पादन में फ्लास्क का उपयोग करने जा रहे हैं (यह सोचते हैं कि "उत्पादन" कम-ट्रैफिक आंतरिक अनुप्रयोग नहीं है, जो 10 से अधिक समवर्ती उपयोगकर्ताओं के साथ नहीं है) एक असली वेब सर्वर के पीछे खड़ा होना सुनिश्चित करें (फ्लास्क के डॉक्स का अनुभाग देखें कुछ सुझाए गए तरीकों के लिए तैनाती विकल्प )

फ्लास्क के भीतर से सरल app.run() का उपयोग एक समय में केवल एक ग्राहक की सेवा करने में सक्षम एकल धागे पर एक एकल तुल्यकालिक सर्वर बनाता है। यह ठीक इसी कारण के लिए कम मांग के साथ नियंत्रित वातावरण (यानी विकास, डीबगिंग) के लिए उपयोग के लिए है।

अजगर जीआईएल की वजह से स्पॉन्गिंग थ्रेड्स और उन्हें स्वयं प्रबंधित करना शायद आपको बहुत दूर तक नहीं जा रहा है।

उसने कहा, आपके पास अभी भी कुछ अच्छा विकल्प हैं Gunicorn एक ठोस, आसान उपयोग WSGI सर्वर है जो आपको कई श्रमिकों को अलग करने की अनुमति देगा (अलग प्रक्रियाएं, इसलिए जीआईएल की कोई चिंता नहीं), और यहां तक ​​कि अतुल्यकालिक श्रमिकों के साथ भी आता है जो आपकी ऐप को गति देगा (और इसे अधिक सुरक्षित बनायेगा) अपने हिस्से पर कोई काम नहीं करने के लिए (विशेषकर फ्लास्क के साथ)

फिर भी, यहां तक ​​कि सैनिकों को सीधे सार्वजनिक रूप से उजागर नहीं किया जाना चाहिए। उत्पादन में, इसका उपयोग एक अधिक मजबूत एचटीटीपी सर्वर के पीछे किया जाना चाहिए; nginx गनॉर्नॉर्न और फ्लास्क के साथ अच्छी तरह से जाना जाता है