Update peer.py

This commit is contained in:
Aryan Singh committed 2026-09-26 01:50:00 -05:00
1 parent 9f085ea1b6
commit 00fec9b46c
1 file changed
+15 -3
+15 -3
View File
@@ -20,6 +20,7 @@ RETRY_INTERVAL = 5.0
FANOUT = 1 FANOUT = 1
members_list = {} members_list = {}
dead_members = set()
members_list_lock = threading.Lock() members_list_lock = threading.Lock()
SELF_ID = (IP, SERVER_PORT, utc_time()) SELF_ID = (IP, SERVER_PORT, utc_time())
@@ -63,6 +64,9 @@ def worker_1():
join_id = (join_ip, join_port, join_timestamp) join_id = (join_ip, join_port, join_timestamp)
with members_list_lock: with members_list_lock:
if join_id in dead_ids:
continue
if join_id not in members_list: if join_id not in members_list:
members_list[join_id] = { members_list[join_id] = {
"heart_beat": 1, "heart_beat": 1,
@@ -107,12 +111,20 @@ def worker_1():
incoming_state = member['state'] incoming_state = member['state']
incoming_hb = member['heart_beat'] incoming_hb = member['heart_beat']
if member_id not in members_list and incoming_state != "failed": if member_id in dead_ids:
continue
if member_id not in members_list:
if incoming_state == "failed":
dead_ids.add(member_id)
continue
members_list[member_id] = { members_list[member_id] = {
"heart_beat": incoming_hb, "heart_beat": incoming_hb,
"local_last_seen": utc_time(), "local_last_seen": utc_time(),
"state": incoming_state, "state": incoming_state,
"local_failed_since" : utc_time() if incoming_state == "failed" else None, "local_failed_since": None,
"local_suspected_since": None "local_suspected_since": None
} }
continue continue
@@ -209,8 +221,8 @@ def worker_4():
to_remove.append(member_id) to_remove.append(member_id)
for member_id in to_remove: for member_id in to_remove:
dead_ids.add(member_id)
del members_list[member_id] del members_list[member_id]
print(f"Purged member {member_id} from list.")
time.sleep(0.5) time.sleep(0.5)