kazoo.recipe.election
¶
ZooKeeper Leader Elections
- Maintainer:
None
- Status:
Unknown
Public API¶
- class kazoo.recipe.election.Election(client, path, identifier=None)[source]¶
Kazoo Basic Leader Election
Example usage with a
KazooClient
instance:zk = KazooClient() zk.start() election = zk.Election("/electionpath", "my-identifier") # blocks until the election is won, then calls # my_leader_function() election.run(my_leader_function)
- __init__(client, path, identifier=None)[source]¶
Create a Kazoo Leader Election
- Parameters:
client – A
KazooClient
instance.path – The election path to use.
identifier – Name to use for this lock contender. This can be useful for querying to see who the current lock contenders are.
- cancel()[source]¶
Cancel participation in the election
Note
If this contender has already been elected leader, this method will not interrupt the leadership function.
- contenders()[source]¶
Return an ordered list of the current contenders in the election
Note
If the contenders did not set an identifier, it will appear as a blank string.
- run(func, *args, **kwargs)[source]¶
Contend for the leadership
This call will block until either this contender is cancelled or this contender wins the election and the provided leadership function subsequently returns or fails.
- Parameters:
func – A function to be called if/when the election is won.
args – Arguments to leadership function.
kwargs – Keyword arguments to leadership function.