def __init__(self, server): Module.__init__(self, server) self.apiroutine = RoutineContainer(self.scheduler) self.client = ZooKeeperClient(self.apiroutine, self.serverlist) self.connections.append(self.client) self.apiroutine.main = self.main self.routines.append(self.apiroutine)
def main(self): clients = [ZooKeeperClient(self.apiroutine, self.serverlist) for _ in range(0,10)] for c in clients: c.start() def test_loop(number): maindir = ('vlcptest_' + str(number)).encode('utf-8') client = clients[number % len(clients)] for _ in range(0, 100): for m in client.requests([zk.multi( zk.multi_create(maindir, b'test'), zk.multi_create(maindir + b'/subtest', 'test2') ), zk.getchildren2(maindir, True)], self.apiroutine): yield m for m in client.requests([zk.multi( zk.multi_delete(maindir + b'/subtest'), zk.multi_delete(maindir)), zk.getchildren2(maindir, True)], self.apiroutine): yield m from time import time starttime = time() for m in self.apiroutine.executeAll([test_loop(i) for i in range(0, 100)]): yield m print('10000 loops in %r seconds, with %d connections' % (time() - starttime, len(clients))) for c in clients: for m in c.shutdown(): yield m