예제 #1
0
    def setUp(self):
        self.path = "test"
        self.ssock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
        self.ssock.bind(self.path)
        self.ssock.listen(5)
      
        self.factory = MockFactory()
        self.factory.protocol = MockProtocol
        self.client = UnixClient(loop, self.factory, self.path)

        self._connected = False
예제 #2
0
파일: forked.py 프로젝트: PlumpMath/whizzer
def main():
    path = 'adder_socket'
    loop = pyev.default_loop()

    sigwatcher = pyev.Signal(
        signal.SIGINT, loop,
        lambda watcher, events: watcher.loop.unloop(pyev.EVUNLOOP_ALL))
    sigwatcher.start()

    p = Process(loop, server_main, loop, 'adder_socket')
    p.start()

    pickle_factory = PickleProtocolFactory()
    pickle_client = UnixClient(loop, pickle_factory, path)

    retries = 10
    while retries:
        try:
            pickle_client.connect().result()
            retries = 0
        except Exception as e:
            time.sleep(0.1)
            retries -= 1

    proxy = pickle_factory.proxy(0).result()

    start = time.time()
    s = 0
    for i in range(10000):
        s = proxy.call('add', 1, s)
    stop = time.time()

    logger.info(
        'pickle-rpc took {} seconds to perform {} calls, {} calls per second',
        stop - start, s, s / (stop - start))

    start = time.time()
    for i in range(10000):
        proxy.notify('add', 1, s)
    proxy.call('add', 1, s)
    stop = time.time()

    logger.info(
        'pickle-rpc took {} seconds to perform {} notifications, {} notifies per second',
        stop - start, 10000, 10000 / (stop - start))

    msgpack_factory = MsgPackProtocolFactory()
    msgpack_client = UnixClient(loop, msgpack_factory, path + '_mp')

    retries = 10
    while retries:
        try:
            msgpack_client.connect().result()
            retries = 0
        except Exception as e:
            time.sleep(0.1)
            retries -= 1

    proxy = msgpack_factory.proxy(0).result()

    start = time.time()
    s = 0
    for i in range(10000):
        s = proxy.call('add', 1, s)
    stop = time.time()

    logger.info(
        'msgpack-rpc took {} seconds to perform {} calls, {} calls per second',
        stop - start, s, s / (stop - start))

    start = time.time()
    for i in range(10000):
        proxy.notify('add', 1, s)
    proxy.call('add', 1, s)
    stop = time.time()

    logger.info(
        'msgpack-rpc took {} seconds to perform {} notifications, {} notifies per second',
        stop - start, 10000, 10000 / (stop - start))

    p.stop()
예제 #3
0
 def connect(self):
     self.factory = MsgPackProtocolFactory()
     self.client = UnixClient(self.loop, self.factory, self.path)
     d = self.client.connect()
     d.add_callback(self.connected)
     return d
예제 #4
0
 def test_unix_client(self):
     factory = ProtocolFactory()
     factory.protocol = Protocol
     client = UnixClient(loop, MockFactory(), "bogus")