Update system_monitor.py
This commit is contained in:
+21
-4
@@ -445,11 +445,28 @@ def on_message(client, userdata, msg):
|
|||||||
publish_all_ini_files(client)
|
publish_all_ini_files(client)
|
||||||
|
|
||||||
def auto_publish_task(client):
|
def auto_publish_task(client):
|
||||||
|
disconnect_counter = 0
|
||||||
|
update_interval = cfg['settings'].get('update_interval', 30)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
status = publish_all(client)
|
if not client.is_connected():
|
||||||
publish_all_ini_files(client)
|
disconnect_counter += 1
|
||||||
check_auto_healing(client, status)
|
logger.warning(f"⚠️ Broker MQTT irraggiungibile. Watchdog {disconnect_counter}/5...")
|
||||||
time.sleep(cfg['settings'].get('update_interval', 30))
|
|
||||||
|
# Dopo ~2.5 minuti di disconnessione (5 tentativi x 30s), killa il processo
|
||||||
|
if disconnect_counter >= 5:
|
||||||
|
logger.error("🚨 Connessione persa definitivamente. Chiusura forzata per riavvio tramite systemd...")
|
||||||
|
os._exit(1)
|
||||||
|
else:
|
||||||
|
if disconnect_counter > 0:
|
||||||
|
logger.info("✅ Connessione MQTT ripristinata spontaneamente.")
|
||||||
|
disconnect_counter = 0
|
||||||
|
|
||||||
|
status = publish_all(client)
|
||||||
|
publish_all_ini_files(client)
|
||||||
|
check_auto_healing(client, status)
|
||||||
|
|
||||||
|
time.sleep(update_interval)
|
||||||
|
|
||||||
def start_service():
|
def start_service():
|
||||||
global current_status
|
global current_status
|
||||||
|
|||||||
Reference in New Issue
Block a user