From 109f99369d33729e9c4468e1e5bb34cfdccfec1c Mon Sep 17 00:00:00 2001 From: Cory Hawkvelt Date: Tue, 23 Sep 2025 01:31:41 +0930 Subject: [PATCH] Modified the handle_disconnect function in websocket_server/events/messages.py to delete the Redis keys ws_liveness:{worker_id} and ws_latency:{worker_id} when a worker disconnects. This prevents stale heartbeat data from causing reconcile_online_workers to incorrectly mark disconnected workers as online. --- websocket_server/events/messages.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/websocket_server/events/messages.py b/websocket_server/events/messages.py index 0279d0d..d7eab1b 100644 --- a/websocket_server/events/messages.py +++ b/websocket_server/events/messages.py @@ -42,6 +42,12 @@ def register_socketio_handlers(socketio): if worker_id: del connected_workers[worker_id] logger.warning(f"Worker {worker_id} disconnected") + + # Delete Redis ping keys to prevent stale heartbeats from marking worker online + redis_client = get_redis_client() + redis_client.delete(f"ws_liveness:{worker_id}") + redis_client.delete(f"ws_latency:{worker_id}") + notify_worker_disconnect(worker_id)