예제 #1
0
 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)
예제 #2
0
 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