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.