2011-05-04 4 views
8

मैं वर्तमान में निर्देशिका (और इसकी उप निर्देशिका) की निगरानी करने के लिए nodeJS में एक स्क्रिप्ट का उपयोग कर रहा हूं, और फ़ाइल को एक बार वहां रखा गया है। हकीकत में, यह एक एफ़टीपी होगा, जहां उपयोगकर्ता फाइल अपलोड करेंगे, इसे संसाधित किया जाएगा, फिर हटा दिया जाएगा।परिवर्तनों के लिए निगरानी निर्देशिका - संभावित उच्च मेमोरी

जाहिर है, मैं पहले से ही सीपीयू उपयोग में कुछ उच्च मात्रा को स्क्रिप्ट के साथ देख रहा हूं, क्योंकि यह निर्देशिकाओं पर ट्रैवर करता है, फ़ाइलों को देखने के लिए प्रतीक्षा करता है। लेकिन मुझे चिंता है कि अब तक स्क्रिप्ट चलती है, स्मृति उपयोग जितना अधिक होता है (यह केवल तेजी से बढ़ता रहता है)। परिवर्तन के लिए निर्देशिका की निगरानी करने के लिए कुछ हल्के तरीके हैं?

धन्यवाद!

संपादित करें: मैं वर्तमान में watch-tree का उपयोग कर रहा हूं जो कि बहुत अच्छा है, लेकिन अभी भी बढ़ती स्मृति समस्या है।

+3

आपकी पहचान क्या तृतीय पक्ष कोड में स्मृति रिसाव है। 'पर्यवेक्षक' का उपयोग करने का प्रयास करें, इसमें स्मृति रिसाव होने की संभावना कम है। (यह इसहाक द्वारा बनाया गया है !!) – Raynos

+0

एक शानदार विकल्प की तरह लगता है! फ़ाइलों को जोड़े जाने पर मैं निर्देशिका (और उप-निर्देशिका) की निगरानी कैसे कर सकता हूं? नोड-पर्यवेक्षक केवल परिवर्तनों के लिए फ़ाइल देखता है (उदाहरण के लिए server.js) – crawf

+0

यह सभी '.js' फ़ाइलों के लिए कोई उप निर्देशिका भी देखता है। यदि आप 'पर्यवेक्षक --help' को आजमाते हैं तो इसमें अधिक विस्तृत नियंत्रण के लिए' -js' विकल्प होना चाहिए। – Raynos

उत्तर

3

लगता है जैसे आप एफएएम या इनोटिफ़ाई के आसपास एक रैपर चाहते हैं। शायद node-inotify-plusplus जैसी कुछ आपके लिए काम करेगी।

+0

धन्यवाद @ आरजेपी, मैं ऐसा कुछ देख रहा हूं। किसी भी समाधान के साथ मेरा मुख्य मुद्दा स्मृति की स्तर है जो निगरानी प्रक्रिया द्वारा उठाया जाएगा, क्योंकि इस प्रणाली को एक समय में 8 घंटे के लिए ऑनलाइन होना चाहिए। जाने के लिए एक अच्छा तरीका है? मैंने जो शोध किया है, उससे ओएस के अलावा, यह बहुत मेमोरी-कुशल होगा ... – crawf

+1

फ्रीबीएसडी/ओएस एक्स उपयोगकर्ताओं को एक केक्यू समाधान का उपयोग करने की आवश्यकता होगी क्योंकि इन प्लेटफार्मों पर इनोटिफी/एपोल मौजूद नहीं है। – jarjar

+0

क्या आप फ़ाइलों के नाम मुद्रित करने के लिए नोड-इनोटिफी-प्लसप्लस का उपयोग कर सकते हैं क्योंकि निर्देशिका में फ़ाइलों को संशोधित किया गया है? –