2014-06-24 8 views
8

मैंने ओपनशफ्ट के नि: शुल्क स्तर पर अपना पहला नोड.जेएस ऐप तैनात किया है, और यह बहुत अच्छा काम करता है।क्या ओपनशफ्ट पर Forever.js का उपयोग करना आवश्यक है?

क्या ओपनशफ्ट स्वचालित रूप से मेरे नोड ऐप को क्रैश होने पर पुनरारंभ करेगा, या मुझे Forever.js सेट अप करना होगा? मैंने इसे स्थापित करने की कोशिश की, और यह काम नहीं करेगा। node_modules/forever/bin/forever start app.js चलाने के बाद (कार्य निर्देशिका app-root/repo किया गया था, forever की स्थानीय प्रति के साथ) मैं इस उत्पादन मिल गया:

warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
info: Forever processing file: app.js 

fs.js:240 
    return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); 
       ^
Error: ENOENT, no such file or directory '/var/lib/openshift/5397416f5004466c0b000080/.forever/VQMF.log' 
    at Object.openSync (fs.js:240:18) 
    at Object.startDaemon (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:406:14) 
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:258:13 
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:145:5 
    at Object.oncomplete (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:358:11) 

तो, OpenShift मेरे ऐप की स्वास्थ्य मेरे लिए प्रबंधन करता है, या मैं हमेशा के लिए काम करना आरंभ करने की आवश्यकता होगी? यदि हां, तो मुझे मिली त्रुटि के बारे में कोई विचार?

+0

बिल्कुल सही सवाल है, वास्तव में क्या मैं मापांक से अधिक चलती है (जो आपके ऐप्स का भी पुन: प्रारंभ होता) जानना चाहते हैं। मॉड्यूलस के पास आपको एक ईमेल भेजने का विकल्प भी है, किसी को पता है कि ओपनशफ्ट ऐसा कर सकता है या नहीं? (ऐसा लगता है कि नोड-पर्यवेक्षक के पास यह विकल्प नहीं है) – user949300

उत्तर

6

हां, ओपनशफ्ट स्वचालित रूप से क्रैश होने पर आपके नोड ऐप को पुनरारंभ करता है। ओपनशफ्ट हमेशा के लिए उपयोग नहीं करता है .js लेकिन यह node-supervisor का उपयोग करता है। आप उस चीज की आवश्यकता के जरिए इसका परीक्षण कर सकते हैं जो अस्तित्व में नहीं है। इसे ठीक से ठीक करें क्योंकि लॉग ऐप को फिर से शुरू करने में तेजी से बढ़ सकता है।

DEBUG: Running node-supervisor with 
DEBUG: program 'server.js' 
DEBUG: --watch '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' 
DEBUG: --ignore 'undefined' 
DEBUG: --extensions 'node|js|coffee' 
DEBUG: --exec 'node' 
DEBUG: Starting child process with 'node server.js' 
DEBUG: Watching directory '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' for changes. 
+0

दिलचस्प, वह लॉग कहां है? और क्या इसके लिए यह 'मुख्य' या 'स्क्रिप्ट्स' स्टार्ट' का उपयोग करता है? आपके ऐप के नीचे openshift साइट से कमांड स्ट्रिंग का उपयोग कर सिस्टम पर – Jeff

+0

ssh। फिर सीडी ऐप-रूट/लॉग, सभी लॉग वहां हैं। मुझे यकीन है कि वे तैयारी के लिए स्क्रिप्ट का उपयोग कर रहे हैं क्योंकि ऐप शुरू करने से पहले कई चीजें शुरू/स्थापित/सेटअप हैं ... मैंने वास्तव में यह देखने के लिए खोला नहीं है कि यह कौन सी स्क्रिप्ट है। – Ben

+0

बहुत बढ़िया, धन्यवाद! – Jeff

5

वर्तमान में, OpenShift का डिफ़ॉल्ट व्यवहार supervisor का उपयोग शुरू, घड़ी, और अपने NodeJS अनुप्रयोगों को पुनः आरंभ करने शामिल है: यहाँ OpenShift पर nodejs.log में लॉग है जो दिखाता है यह नोड पर्यवेक्षक चल रहा है कि है। आपका ऐप्लिकेशन किसी main प्रविष्टि (containing the name of your server script) के साथ एक मान्य package.json फ़ाइल शामिल

  1. , तो OpenShift supervisor का उपयोग शुरू करने के द्वारा अपने ऐप को प्रारंभ करेंगे:

    यहाँ NodeJS के लिए विभिन्न init विकल्पों में से एक त्वरित रूपरेखा है वह स्क्रिप्ट

  2. यदि आपके ऐप में force_npm_deploy marker file (.openshift/markers/use_npm में एक खाली फ़ाइल) शामिल है - तो ओपनशफ्ट केवल npm start चलाएगा। यह आपके package.json फ़ाइल की scripts.start इकाई में जो कुछ भी परिभाषित किया गया है उसे चलाता है।
  3. यदि अन्य सभी विफल हो जाते हैं, तो OpenShift supervisor (फ़ॉलबैक विकल्प के रूप में) का उपयोग करके server.js चलाने का प्रयास करेगा।

कुछ अतिरिक्त नोट्स यहां उपलब्ध हैं: https://www.openshift.com/blogs/10-reasons-openshift-is-the-best-place-to-host-your-nodejs-app#npm

+0

धन्यवाद, यह भी सहायक था। :) – Jeff

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