From 0cc2093341052bad1b0541cc7bea2c3c328e4e97 Mon Sep 17 00:00:00 2001
From: Katharina <katharina.willig@outlook.com>
Date: Mon, 25 Nov 2024 21:10:00 +0100
Subject: [PATCH] leader
---
kclient.py | 4 ++--
server.py | 15 ++++++++-------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/kclient.py b/kclient.py
index 5c8831d..5becb12 100644
--- a/kclient.py
+++ b/kclient.py
@@ -36,8 +36,8 @@ def listen():
# continue
#ignores broadcast messages with own ip #################please enable it after testing!!!!!!!!!!!!!!!!!!!S
- #if address[0]==MY_IP:
- # continue
+ if address[0]==MY_IP:
+ continue
#####identifyLEADER############
# Erkennen von LEADER-Nachrichten
diff --git a/server.py b/server.py
index 8e45dd7..5417ce1 100644
--- a/server.py
+++ b/server.py
@@ -28,6 +28,7 @@ def broadcast(message):
# Listener function
def listen(queue, shared_data):
"""Receives messages and updates shared state."""
+ print(f"Listener from {shared_data['server_id']} is listening on {server_socket}")
global active_servers
while True:
try:
@@ -75,7 +76,7 @@ def start_election(queue, shared_data):
print("Starting election...")
broadcast(f"START_ELECTION: {shared_data['server_id']}")
- timeout = time.time() + 20 # 20-second timeout
+ timeout = time.time() + 20 # 20-second timeout, waiting for other servers
highest_id = shared_data['server_id']
while time.time() < timeout:
@@ -100,12 +101,12 @@ def start_election(queue, shared_data):
except multiprocessing.queues.Empty:
continue
- if highest_id == shared_data['server_id']:
- shared_data['current_leader'] = shared_data['server_id']
- broadcast(f"LEADER: {shared_data['current_leader']}")
- print(f"I am the leader: {shared_data['current_leader']}")
- else:
- print(f"Leader election finished, leader is {highest_id}")
+ if highest_id == shared_data['server_id']:
+ shared_data['current_leader'] = shared_data['server_id']
+ broadcast(f"LEADER: {shared_data['current_leader']}")
+ print(f"I am the leader: {shared_data['current_leader']}")
+ else:
+ print(f"Leader election finished, leader is {highest_id}")
# Heartbeat function
--
GitLab