Sök…


Distribution med PM2 utan driftstopp.

ecosystem.json

{
    "name": "app-name",
    "script": "server",
    "exec_mode": "cluster",
    "instances": 0,    
    "wait_ready": true
    "listen_timeout": 10000,
    "kill_timeout": 5000,
}
wait_ready

Istället för att ladda om att vänta på lyssningshändelse, vänta på process.send ('redo');

listen_timeout

Tid i ms innan du tvingar en ny laddning om app inte lyssnar.

kill_timeout

Tid i ms innan du skickar en SIGKLL.

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);
    });
});

Du kanske måste vänta på att din ansökan har upprättat anslutningar med dina DB: er / cachar / arbetare / vad som helst. PM2 måste vänta innan du anser din ansökan som online. För att göra detta måste du ange wait_ready: true i en processfil. Detta kommer att få PM2 att lyssna på det evenemanget. I din ansökan måste du lägga till process.send('ready'); när du vill att din ansökan ska betraktas som redo.

När en process stoppas / startas om av PM2, skickas vissa systemsignaler till din process i en given ordning.

Först en SIGINT en signal skickas till dina processer, signal du kan fånga för att veta att din process kommer att stoppas. Om din applikation inte avslutar av sig själv innan 1.6s (kan anpassas) kommer den att få en SIGKILL signal för att tvinga processen att avsluta. Så om din applikation behöver städa upp något säger eller jobb kan du fånga SIGINT signalen för att förbereda din ansökan att avsluta.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow