Zoeken…


Implementatie met PM2 zonder downtime.

ecosystem.json

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

In plaats van te herladen wachten op luistergebeurtenis, wacht op process.send ('ready');

listen_timeout

Tijd in ms voordat opnieuw laden wordt geforceerd als app niet luistert.

kill_timeout

Tijd in ms voordat een laatste SIGKLL wordt verzonden.

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

Mogelijk moet u wachten tot uw toepassing verbinding heeft gemaakt met uw DB's / caches / werknemers / wat dan ook. PM2 moet wachten voordat uw aanvraag als online wordt beschouwd. Hiertoe moet u wait_ready: true in een procesbestand. Hierdoor zal PM2 naar dat evenement luisteren. In uw applicatie moet u process.send('ready'); wanneer u wilt dat uw aanvraag als gereed wordt beschouwd.

Wanneer een proces wordt gestopt / opnieuw gestart door PM2, worden sommige systeemsignalen in een bepaalde volgorde naar uw proces verzonden.

Eerst wordt een SIGINT een signaal naar uw processen gestuurd, een signaal dat u kunt vangen om te weten dat uw proces wordt gestopt. Als uw toepassing niet vóór 1.6s (aanpasbaar) wordt SIGKILL , ontvangt deze een SIGKILL signaal om de procesuitgang te forceren. Dus als uw applicatie iets toestanden of taken moet opschonen, kunt u het SIGINT signaal ontvangen om uw applicatie voor te bereiden op het afsluiten.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow