Fix : Deploy bug
Some checks failed
release / build (push) Successful in 23s
release / verify-windows (push) Failing after 1m8s

This commit is contained in:
jeanotx32
2026-08-11 18:41:19 +02:00
parent 80be1e42fc
commit 6f70da56a6
5 changed files with 26 additions and 10 deletions

View File

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