Exemple #1
0
    def __init__(self,
                 zk_hosts,
                 group_name,
                 consumer_name,
                 allocator_fn,
                 on_rebalance=None):
        self.zk_hosts = zk_hosts
        self.group_name = group_name
        self.consumer_name = consumer_name

        self.allocator_fn = allocator_fn
        self.on_rebalance = on_rebalance

        self.conn = client.KazooClient(hosts=",".join(self.zk_hosts))
        self.connected = threading.Event()

        self.members = set()
        self.members_collected = threading.Event()
        self.party = Party(self.conn,
                           self.consumer_name,
                           self.members_path,
                           on_change=self.on_group_members_change)

        self.partitions = set()
        self.partitions_collected = threading.Event()
        self.shared_set = SharedSet(self.conn,
                                    self.partition_path,
                                    on_change=self.on_partition_change)

        self.mapping = {}