// ============================================================================ chdir("/var/www/html"); require_once __DIR__ . "/config/config.php"; require_once __DIR__ . "/fonctions_alertes.php"; $id_bateau = (int)($argv[1] ?? 0); if ($id_bateau <= 0) { fwrite(STDERR, "Usage : php gardien.php \n"); exit(1); } mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $db = new mysqli("127.0.0.1", BDD_USER, BDD_PASSWORD, BDD_DATABASE, 3307); $seuil = Reglage_entier($db, 'Seuil_injoignable', SEUIL_INJOIGNABLE_DEFAUT); // Garde-fou (signal arrivé pendant le lancement de l'échéance, horloge...) : on revérifie l'ancienneté du dernier signal, // et on ne déclare la perte qu'une fois (Injoignable_depuis encore NULL) : $stmt = $db->prepare("UPDATE TB_Bateaux SET Injoignable_depuis = Date_dernier_signal WHERE Cle_primaire=? AND Injoignable_depuis IS NULL AND Date_dernier_signal IS NOT NULL AND Date_dernier_signal <= UTC_TIMESTAMP() - INTERVAL ? SECOND"); $stmt->bind_param('ii', $id_bateau, $seuil); $stmt->execute(); $declare = ($stmt->affected_rows == 1); $stmt->close(); $db->close(); if ($declare) { echo "Bateau {$id_bateau} : aucun signal depuis plus de {$seuil} s - déclaré injoignable.\n"; Demander_traitement_alertes($id_bateau); } else echo "Bateau {$id_bateau} : signal récent ou déjà déclaré injoignable - rien à faire.\n";