Update peer.py
This commit is contained in:
1 parent
9f085ea1b6
commit
00fec9b46c
1 file changed
+16
-4
+16
-4
@@ -20,6 +20,7 @@ RETRY_INTERVAL = 5.0
|
||||
FANOUT = 1
|
||||
|
||||
members_list = {}
|
||||
dead_members = set()
|
||||
members_list_lock = threading.Lock()
|
||||
|
||||
SELF_ID = (IP, SERVER_PORT, utc_time())
|
||||
@@ -63,6 +64,9 @@ def worker_1():
|
||||
join_id = (join_ip, join_port, join_timestamp)
|
||||
|
||||
with members_list_lock:
|
||||
if join_id in dead_ids:
|
||||
continue
|
||||
|
||||
if join_id not in members_list:
|
||||
members_list[join_id] = {
|
||||
"heart_beat": 1,
|
||||
@@ -107,13 +111,21 @@ def worker_1():
|
||||
incoming_state = member['state']
|
||||
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] = {
|
||||
"heart_beat": incoming_hb,
|
||||
"local_last_seen": utc_time(),
|
||||
"state": incoming_state,
|
||||
"local_failed_since" : utc_time() if incoming_state == "failed" else None,
|
||||
"local_suspected_since" : None
|
||||
"local_failed_since": None,
|
||||
"local_suspected_since": None
|
||||
}
|
||||
continue
|
||||
|
||||
@@ -209,8 +221,8 @@ def worker_4():
|
||||
to_remove.append(member_id)
|
||||
|
||||
for member_id in to_remove:
|
||||
dead_ids.add(member_id)
|
||||
del members_list[member_id]
|
||||
print(f"Purged member {member_id} from list.")
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
|
||||
Reference in new issue
Block a user