Ricerca…


Distribuzione utilizzando PM2 senza tempi di fermo.

ecosystem.json

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

Invece di ricaricare in attesa dell'evento di ascolto, attendere process.send ('ready');

listen_timeout

Tempo in ms prima di forzare un ricaricamento se l'app non è in ascolto.

kill_timeout

Tempo in ms prima di inviare un SIGKLL finale.

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

Potrebbe essere necessario attendere che l'applicazione abbia connessioni stabilite con i propri DB / cache / worker / qualunque. PM2 deve attendere prima di considerare l'applicazione come online. Per fare ciò, è necessario fornire wait_ready: true in un file di processo. Questo renderà PM2 in ascolto per quell'evento. Nella tua applicazione dovrai aggiungere process.send('ready'); quando vuoi che la tua domanda sia considerata pronta.

Quando un processo viene arrestato / riavviato da PM2, alcuni segnali di sistema vengono inviati al processo in un determinato ordine.

Prima un SIGINT viene inviato un segnale ai tuoi processi, segnale che puoi prendere per sapere che il tuo processo verrà fermato. Se la tua applicazione non esce prima di 1.6s (personalizzabile) riceverà un segnale SIGKILL per forzare l'uscita del processo. Quindi se la tua applicazione ha bisogno di ripulire qualcosa di stato o di lavoro, puoi prendere il segnale SIGINT per preparare la tua richiesta di uscita.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow