Recherche…


Déploiement à l'aide de PM2 sans temps d'arrêt.

ecosystem.json

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

Au lieu de recharger en attente d'un événement d'écoute, attendez le processus.send ('ready');

listen_timeout

Temps en ms avant de forcer un rechargement si l'application n'écoute pas.

kill_timeout

Temps en ms avant d'envoyer un SIGKLL final.

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

Vous devrez peut-être attendre que votre application ait établi des connexions avec vos bases de données / caches / travailleurs / autres. PM2 doit attendre avant de considérer votre application comme étant en ligne. Pour ce faire, vous devez fournir wait_ready: true dans un fichier de processus. Cela fera écouter PM2 pour cet événement. Dans votre application, vous devrez ajouter process.send('ready'); lorsque vous souhaitez que votre demande soit considérée comme prête.

Lorsqu'un processus est arrêté / redémarré par PM2, certains signaux système sont envoyés à votre processus dans un ordre donné.

Tout d'abord, un signal SIGINT est envoyé à vos processus, signalant que vous pouvez savoir que votre processus va être arrêté. Si votre application ne sort pas d'elle-même avant 1.6s (personnalisable), elle recevra un signal SIGKILL pour forcer la sortie du processus. Donc, si votre application doit nettoyer des états ou des tâches, vous pouvez intercepter le signal SIGINT pour préparer votre application à quitter.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow