From d719f01cc1cbb73921ab6c091d73e7dfbc6aa778 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 2 Oct 2024 09:18:47 +0200 Subject: [PATCH] Update node status --- stats-backend/api2/tasks.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/stats-backend/api2/tasks.py b/stats-backend/api2/tasks.py index 9ea5989..cbb782f 100644 --- a/stats-backend/api2/tasks.py +++ b/stats-backend/api2/tasks.py @@ -1830,6 +1830,7 @@ def extract_wallets_and_ids(): def bulk_update_node_statuses(nodes_data): status_history_to_create = [] redis_updates = {} + nodes_to_update = [] for node_id, is_online in nodes_data: latest_status = r.get(f"provider:{node_id}:status") @@ -1840,10 +1841,15 @@ def bulk_update_node_statuses(nodes_data): ) redis_updates[f"provider:{node_id}:status"] = str(is_online) + if not is_online: + nodes_to_update.append(node_id) if status_history_to_create: with transaction.atomic(): NodeStatusHistory.objects.bulk_create(status_history_to_create) + + # Efficiently update Node objects for offline nodes + Node.objects.filter(node_id__in=nodes_to_update).update(online=False) if redis_updates: r.mset(redis_updates)