2011-04-14 7 views
8

चूंकि नोड मूल रूप से एक प्रक्रिया है, जब कुछ गलत हो जाता है, तो पूरा आवेदन मर जाता है।जब node.js नीचे चला जाता है, तो मैं इसे स्वचालित रूप से बैक अप कैसे ले सकता हूं?

अब मेरे पास एक्सप्रेस पर बनाए गए कुछ ऐप्स हैं और मैं विस्तारित डाउनटाइम (process.on ('uncaughtException') और कस्टम दिल की धड़कन मॉनीटर को रोकने के लिए कुछ मैन्युअल विधियों का उपयोग कर रहा हूं)।

समुदाय से कोई सुझाव? बेस्ट प्रैक्टिस? फ़्रेमवर्क?

धन्यवाद! एक

उत्तर

5

कुछ forever

या supervisor का उपयोग तरह का प्रयोग करें।

बस npm link और फिर sudo supervisor server.js

इस प्रकार के पुस्तकालय भी गर्म पुनः लोडिंग का समर्थन करते हैं। कुछ ऐसे हैं जिन्हें आप कमांड लाइन से उपयोग करते हैं और वे आपके लिए उप प्रक्रियाओं के रूप में नोड सेवाओं को चलाते हैं। ऐसे कुछ भी हैं जो आपको अपने कोड को पुनः लोड करने के लिए लिखने की उम्मीद करते हैं।

आदर्श रूप से आप एक पूर्ण उड़ा लोड बैलेंसर की ओर बढ़ना चाहते हैं जो विफलता सुरक्षित है। यदि आपके लोड बैलेंसर में एक एकल नोड proccess क्रैश हो जाता है तो आप इसे चुपचाप पुनरारंभ करना चाहते हैं और सभी कनेक्शन और डेटा बचाया गया है।

व्यक्तिगत रूप से मैं विकास के लिए supervisor (यह आईएसएक्स द्वारा लिखा गया है) और आपके वास्तविक उत्पादन सर्वर के लिए एक पूर्ण उड़ा लोड बैलेंसर (या तो nginx या node) की सिफारिश करेगा।

बेशक

अपने पहले से चल रहा समानांतर में एक से अधिक नोड सर्वर प्रक्रियाओं क्योंकि आप सही कई कोर भर में स्केलिंग के बारे में परवाह;) forever मॉड्यूल को देखने के लिए

3

forever का उपयोग करें।

"यह सुनिश्चित करने के लिए एक सरल CLI उपकरण है कि किसी भी स्क्रिप्ट निरंतर चलती रहती है (यानी हमेशा के लिए)"

बस

npm install forever 

NPM साथ स्थापित करें और टाइप

forever start app.js 
1

मैं हूँ forever भी दृढ़ता से अनुशंसा करते हैं।मैं इसे कल और उसके एक हवा का इस्तेमाल किया:

  1. स्थापित npm install forever

  2. अपने अनुप्रयोग शुरू forever start myapp.js

  3. चेक अपनी कार्यशील अगर forever list

अपने अनुप्रयोग की हत्या का प्रयास करें:

  1. ps

  2. अपने myapp.js पीआईडी ​​प्राप्त करें और चलाने के kill <pid

  3. रन forever list और आप, के लिए एक पुस्तकालय इसे फिर से

0

आप लोप उपयोग करके देख सकते चल रहा है देखेंगे स्पार्क या यूनिकॉर्न के समान node.js:

https://github.com/pgte/fugue

फ़्यूगू किसी भी node.js सर्वर प्रकार का प्रबंधन नहीं कर सकता, न केवल वेब सर्वर, और यह एक code कमांड नहीं, node.js स्क्रिप्ट के रूप में स्थापित और कॉन्फ़िगर किया गया है, इसलिए सामान्य node.js & परिनियोजन टूलचेन का उपयोग कर सकते हैं।

2

यदि आप उबंटू का उपयोग कर रहे हैं तो आप अपस्टार्ट (जो डिफ़ॉल्ट रूप से स्थापित है) का उपयोग कर सकते हैं।

$ /etc/init/my_app.conf बिल्ली

विवरण "my_app" लेखक "मुझे" पर

शुरुआत (स्थानीय फ़ाइल सिस्टम और नेट डिवाइस-अप iFace = eth0) रोक शटडाउन होने पर

respawn

कार्यकारी श -c "env NODE_ENV = उत्पादन नोड /path/myapp/app.js >> /var/log/node.log 2> & 1"

"respawn" का अर्थ यह है कि यदि ऐप मर जाता है तो ऐप को पुनरारंभ किया जाएगा।

अन्य आदेशों

आदमी

initctl के लिए एप्लिकेशन

शुरू my_app

शुरू करने के लिए

संबंधित मुद्दे

 संबंधित मुद्दे