Fix : Deploy bug
This commit is contained in:
@@ -49,6 +49,7 @@ const watcher = new StreamWatcher(DEFAULT_WATCH_SETTINGS, {
|
||||
|
||||
let socket: WebSocket | null = null;
|
||||
let statusTimer: NodeJS.Timeout | null = null;
|
||||
let reconnectTimer: NodeJS.Timeout | null = null;
|
||||
let reconnectDelay = RECONNECT_MIN_MS;
|
||||
let statusIntervalMs = 2000;
|
||||
let shuttingDown = false;
|
||||
@@ -117,7 +118,15 @@ function connect(): void {
|
||||
function scheduleReconnect(): void {
|
||||
const delay = reconnectDelay;
|
||||
reconnectDelay = Math.min(reconnectDelay * 2, RECONNECT_MAX_MS);
|
||||
setTimeout(connect, delay).unref?.();
|
||||
|
||||
// Surtout pas de .unref() ici : pendant une coupure, ce minuteur est la seule
|
||||
// chose qui maintienne la boucle d'évènements en vie. Déréférencé, le process
|
||||
// sortirait avec le code 0 au lieu de retenter — la reconnexion ne servirait
|
||||
// jamais. On garde plutôt la référence pour l'annuler à l'arrêt.
|
||||
reconnectTimer = setTimeout(() => {
|
||||
reconnectTimer = null;
|
||||
connect();
|
||||
}, delay);
|
||||
}
|
||||
|
||||
// --- Traitement des messages serveur ----------------------------------------
|
||||
@@ -243,6 +252,8 @@ async function shutdown(signal: string): Promise<void> {
|
||||
shuttingDown = true;
|
||||
console.log(`\n${signal} reçu, arrêt de l'agent…`);
|
||||
stopStatusLoop();
|
||||
if (reconnectTimer) clearTimeout(reconnectTimer);
|
||||
reconnectTimer = null;
|
||||
watcher.stop();
|
||||
// L'enregistrement OBS en cours n'est volontairement pas interrompu.
|
||||
await obs.disconnect().catch(() => undefined);
|
||||
|
||||
Reference in New Issue
Block a user