मैं नोड कार्य कतार में कॉलबैक की सूची कैसे प्राप्त कर सकता हूं? (या, नोड बाहर क्यों नहीं होगा?)


84

यह पृष्ठ के बारे में Node.js पर कहता है :

नोड तब ईवेंट लूप से बाहर निकलता है जब प्रदर्शन करने के लिए अधिक कॉलबैक नहीं होते हैं।

क्या यह पता लगाने का कोई तरीका है कि कौन से कॉलबेक नोड को बाहर निकलने से रोक रहे हैं?


2
यह एक महान प्रश्न है ... वही, जब मैंने इवेंट लूप का अध्ययन करते समय पूछना शुरू किया ... मैं पंक्ति कैसे देखूं? यकीन नहीं होता कि लोग इसे क्यों वोट देंगे। ;)
7

जवाबों:


90

आप उपयोग कर सकते हैं process._getActiveHandles()औरprocess._getActiveRequests()

यह चर्चा नोड.जेएस मेलिंग सूची में देखें ।

अद्यतन: इसके लिए एक अच्छा पैकेज है - https://github.com/mafintosh/why-is-node-running


2
बहुत बहुत धन्यवाद, यह वही है जिसकी मुझे तलाश थी। Freenode पर पहले # Node.js में कोई व्यक्ति इन कॉल्स को याद करने की कोशिश कर रहा था और वहाँ बहुत नहीं मिल रहा था "totally spacing on the name, it's like "process._getOpenHandles()" or something equally hard to remember"। मैं वास्तविक कॉल को खोजने की कोशिश कर रहा था और नहीं कर रहा था। एक बार फिर धन्यवाद।
दिमित्री मिन्कोवस्की

2
मैं नाम भी याद नहीं कर सकता था - उपयोग किए गए नोड उत्तर, टाइप की गई प्रक्रिया ।_ + टैब पूरा करना :)
एंड्री सिदोरोव

हाह, मैंने आरईपीएल स्वत: पूर्ण के बारे में नहीं सोचा था, जो निश्चित रूप से इसे करने का सबसे अच्छा तरीका है। मैंने देखा था node_globals.jsऔर उसे नहीं पाया था। अब मैं नोड कोडबेस को खोज रहा हूं, यह जानने के लिए कि क्या देखना है, और पाते हैं कि वे नोड में परिभाषित किए गए हैं। process._getActiveHandles () src/node.cc:2345: NODE_SET_METHOD(process, "_getActiveHandles", GetActiveHandles);Hah है! अति उत्कृष्ट।
दिमित्री मिंकोवस्की

@dimadima में अभी प्रश्न और उत्तर के बीच एक गिरावट है। तो सबसे पहले, यह "लोग" नहीं है, "यह" एक व्यक्ति है। और StackOverflow दुनिया में शीर्ष 100 सबसे अधिक देखी जाने वाली वेबसाइटों में से एक है, आपको वास्तव में इतना कठिन नहीं लेना चाहिए कि कोई, कहीं, इस सवाल का बहुत शौक नहीं था।
djechlin

2
क्या इन कार्यों पर कोई आधिकारिक दस्तावेज है?
टर्बे सिप

11

जब आप इसे SIGINT (ctrl-c) भेजते हैं तो नोडज एप्लिकेशन को चालू रखने के लिए एक npm मॉड्यूल wtfnode है।

यह process._getActiveHandles()@ andrey-sidrov के उत्तर में उल्लिखित आंतरिक उपयोग करता है । उपयोग करने wtfnodeका लाभ यह है कि यह आसानी से पढ़ा जाने वाला आउटपुट प्रदान करता है।


प्रक्रिया करता है ।_getActiveHandles ()। लंबाई सभी प्रक्रियाओं की कुल या केवल उस प्रक्रिया के लिए देता है जहां इसे कहा जाता है
शांतनु मडाने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.