मेरी अज्ञानता को क्षमा करें, लेकिन एक Django/पायथन पृष्ठभूमि से आ रहा है, मैं पृष्ठभूमि में धीमी प्रक्रियाओं के माध्यम से काम कर रहे एक सेलेरी कतार रखने का बड़ा लाभ देख सकता हूं, जबकि वेब इंटरफ़ेस जितनी जल्दी हो सके अपडेट किया जाता है।नोड जेएस श्रमिक - उनके लिए कोई ज़रूरत है?
हालांकि, नोड अतुल्यकालिक रूप से काम कर रहा है, क्या कतार प्रणाली के लिए उपयोग केस बेहद कम हो गया है?
उदाहरण के लिए:
1 - साइट के लिए एक उपयोगकर्ता कुछ पोस्ट करता है, 2 - साइट से प्रतिक्रिया करता है, तो एक व्यवस्थापक मेल।
Django में, आप एक कार्य में व्यवस्थापक मेल भेज देंगे, बाद में निष्पादित किया जाएगा, और फिर अनुरोध का जवाब दें। सेलेरी पृष्ठभूमि में मेल भेजता है।
नोड में, आप अपने मेलर को कॉल करते हैं, फिर अनुरोध का जवाब देते हैं। मेलर फिर कॉल करने के लिए कॉलबैक भेजता है या नहीं, जिस बिंदु से उपयोगकर्ता पहले से ही प्रतिक्रिया देख रहा है।
तो मैं नोड के साथ कतार का उपयोग क्यों करूं? मैं अनुमान लगा रहा हूं कि चीजें इससे अधिक जटिल हैं - ऐसा लगता है कि लेनदेन संबंधी मेल जैसी छोटी चीजों के लिए, यह आवश्यक नहीं है ..
या क्या मैं गलत समझ रहा हूं कि यह कैसे काम करता है !?
तो अगर मैं कुछ ऐसा करना चाहता था जैसे किसी बाहरी एपीआई को उपयोगकर्ताओं को निकालने के लिए जानकारी - उदाहरण के लिए। Google के जियोकोडर को अनुरोध कॉल के साथ कुछ रिवर्स जियोकोडिंग करें। यह अनुरोध निम्नलिखित आने वाले अनुरोध के लिए मेरी नोड प्रक्रिया को रोक नहीं देगा? लेकिन अगर बहुत सी CPU उपयोग होता तो यह .. होगा? –
आपको इसे बेंचमार्क करना होगा, लेकिन हां। यह मोटे तौर पर विचार है। आईओ ऑपरेशन की प्रतीक्षा करते समय कितना किया जा सकता है इसके बारे में कुछ विचार करने के लिए यहां देखें: http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html। नोड केवल एक समय में 1 चीज करता है, इसलिए यदि यह संख्या क्रंचिंग है, तो यह अनुरोधों को पूरा नहीं कर सकता है।जैसे ही आप कोई io करते हैं, आप मुक्त नोड को छोड़कर अन्य सामान करते हैं। – AndyD
(सीमांत) स्पष्टता के लिए रीफ्रेशिंग: यदि आपके समांतर निष्पादन में HTTP या फ़ाइल सिस्टम अनुरोधों के लिए बहुत इंतजार करना शामिल है, तो नोड का अंतर्निहित एसिंक्रोनस I/O आपके लिए पर्याप्त समांतरता होगा। यदि आपके समांतर निष्पादन में स्थानीय रूप से बड़ी गणनाएं चलती हैं (वीडियो ट्रांसकोड करना; सिमुलेशन चलाना) तो नोड की एकल-थ्रेडेड प्रकृति आपको रोक देगी और यदि संभव हो तो आपको कार्यकर्ता को काम करना होगा। – Dave