Add 'car/' from commit 'eee0e8dc445691e600680f4abc77f2814b20b054'
git-subtree-dir: car git-subtree-mainline:1d29a5526cgit-subtree-split:eee0e8dc44
This commit is contained in:
24
car/MyRaft/leader.py
Normal file
24
car/MyRaft/leader.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import MyRaft.state as state
|
||||
import MyRaft.node as node
|
||||
|
||||
class Leader(state.State):
|
||||
"""The leader class represents the leader state in the raft algorithm"""
|
||||
def __init__(self, context: node.RaftNode):
|
||||
state.State.__init__(self, context)
|
||||
print("We're a leader!")
|
||||
|
||||
# For indexes for each server to send.
|
||||
self.nextIndex = []
|
||||
self.matchIndex = []
|
||||
|
||||
# Change our timeout.
|
||||
self._context.set_timeout(self._context._heartbeat_timeout, 0)
|
||||
# Send empty AppendEntries.
|
||||
self._context.send_empty_AppendEntries()
|
||||
|
||||
def heartbeat_elapsed(self):
|
||||
print("Sending an append entries message")
|
||||
self._context.send_empty_AppendEntries()
|
||||
|
||||
# Don't forget to reset timer, otherwise they'll try run for leader.
|
||||
self._context.set_timeout(self._context._heartbeat_timeout, 0)
|
||||
Reference in New Issue
Block a user