Node.js
डाउनटाइम के बिना Node.js एप्लिकेशन को तैनात करना।
खोज…
डाउनटाइम के बिना PM2 का उपयोग करते हुए परिनियोजन।
ecosystem.json
{
"name": "app-name",
"script": "server",
"exec_mode": "cluster",
"instances": 0,
"wait_ready": true
"listen_timeout": 10000,
"kill_timeout": 5000,
}
wait_ready
सुनने की घटना के लिए फिर से लोड करने के बजाय, प्रक्रिया के लिए प्रतीक्षा करें। ('तैयार');
listen_timeout
यदि एप्लिकेशन नहीं सुन रहा है तो एक पुनः लोड करने से पहले एमएस में समय।
kill_timeout
अंतिम SIGKLL भेजने से पहले ms में समय।
server.js
const http = require('http');
const express = require('express');
const app = express();
const server = http.Server(app);
const port = 80;
server.listen(port, function() {
process.send('ready');
});
process.on('SIGINT', function() {
server.close(function() {
process.exit(0);
});
});
आपको अपने आवेदन के लिए प्रतीक्षा करने की आवश्यकता हो सकती है कि आपके डीबी / कैश / श्रमिकों / जो भी हो, के साथ कनेक्शन स्थापित किया जाए। PM2 को आपके आवेदन को ऑनलाइन मानने से पहले इंतजार करना होगा। ऐसा करने के लिए, आपको एक प्रक्रिया फ़ाइल में wait_ready: true
प्रदान करने की आवश्यकता है। यह उस घटना के लिए PM2 को सुनेगा। अपने आवेदन में आपको process.send('ready');
जोड़ना होगा process.send('ready');
जब आप चाहते हैं कि आपका आवेदन तैयार माना जाए।
जब कोई प्रक्रिया PM2 द्वारा बंद / पुनः आरंभ की जाती है, तो कुछ सिस्टम सिग्नल एक निश्चित क्रम में आपकी प्रक्रिया को भेज दिए जाते हैं।
पहले एक SIGINT
को आपकी प्रक्रियाओं के लिए एक संकेत भेजा जाता है, संकेत आप यह जानने के लिए पकड़ सकते हैं कि आपकी प्रक्रिया बंद होने वाली है। यदि आपका आवेदन 1.6s (अनुकूलन) से पहले अपने आप से बाहर नहीं निकलता है, तो यह प्रक्रिया से बाहर निकलने के लिए बाध्य करने के लिए एक SIGKILL
सिग्नल प्राप्त करेगा। तो सफाई कुछ राज्यों या नौकरियों के लिए आपके आवेदन की जरूरत तुम्हें पकड़ कर सकते हैं अगर SIGINT
बाहर निकलने के लिए अपने आवेदन तैयार करने के लिए संकेत।