def test_async_rpc_success(self): handler_results = [] sender_results = [] def handler(x): handler_results.append(x) return x**2 self.peer.accept_rpc("service", 0, 0, "method", handler) backend.pause_for(TIMEOUT) rpcs = [] rpcs.append(self.sender.send_rpc("service", 0, "method", (1, ), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (2, ), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (3, ), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (4, ), {})) while rpcs: rpc = junction.wait_any(rpcs, TIMEOUT) rpcs.remove(rpc) sender_results.append(rpc.value) self.assertEqual(handler_results, [1, 2, 3, 4]) self.assertEqual(sender_results, [1, 4, 9, 16])
def test_async_rpc_success(self): handler_results = [] sender_results = [] def handler(x): handler_results.append(x) return x ** 2 self.peer.accept_rpc("service", 0, 0, "method", handler) for i in xrange(4): greenhouse.pause() rpcs = [] rpcs.append(self.sender.send_rpc("service", 0, "method", (1,), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (2,), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (3,), {})) rpcs.append(self.sender.send_rpc("service", 0, "method", (4,), {})) while rpcs: rpc = junction.wait_any(rpcs, TIMEOUT) rpcs.remove(rpc) sender_results.append(rpc.value) self.assertEqual(rpcs, []) self.assertEqual(handler_results, [1, 2, 3, 4]) self.assertEqual(sender_results, [1, 4, 9, 16])
def main(): peer_addr = RELAY_ADDR if '-r' in sys.argv else SERVICE_ADDR client = junction.Client(peer_addr) client.connect() if not client.wait_connected(timeout=3): raise RuntimeError("connection timeout") print client.rpc(SERVICE, 0, "echo", ('one',), {}) rpcs = map(lambda msg: client.send_rpc(SERVICE, 0, "echo", (msg,), {}), ('two', 'three', 'four', 'five')) while rpcs: rpc = junction.wait_any(rpcs) rpcs.remove(rpc) print rpc.value
def main(): peer_addr = RELAY_ADDR if '-r' in sys.argv else SERVICE_ADDR client = junction.Client(peer_addr) client.connect() if not client.wait_connected(timeout=3): raise RuntimeError("connection timeout") print client.rpc(SERVICE, 0, "echo", ('one', ), {}) rpcs = map(lambda msg: client.send_rpc(SERVICE, 0, "echo", (msg, ), {}), ('two', 'three', 'four', 'five')) while rpcs: rpc = junction.wait_any(rpcs) rpcs.remove(rpc) print rpc.value
def main(): client = junction.Client(("localhost", SERVICE_PORT)) client.connect() client.wait_connected() print "wait 2" client.rpc(WAIT_SERVICE, 0, "wait", (2,)) rpcs = [] for i in xrange(5): wait = random.random() * 5 rpc = client.send_rpc(WAIT_SERVICE, 0, "wait", (wait,)) rpc.counter = i rpcs.append(rpc) print "queued a wait %r: %r" % (rpcs[-1].counter, wait) while rpcs: rpc = junction.wait_any(rpcs) print "got back %r" % rpc.counter rpcs.remove(rpc)
def main(): peer_addr = RELAY_ADDR if '-r' in sys.argv else SERVICE_ADDR client = junction.Client(peer_addr) client.connect() if not client.wait_connected(timeout=3): raise RuntimeError("connection timeout") print client.rpc(SERVICE, 0, "echo", ('one',), {}) rpcs = map(lambda num: client.send_rpc(SERVICE, 0, "echo", (num,)), ('two', 'three', 'four', 'five')) dependents = [ rpc.after(functools.partial(second_call, client)).after(third_call) for rpc in rpcs] while dependents: dep = junction.wait_any(dependents) dependents.remove(dep) print dep.value
def main(): peer_addr = RELAY_ADDR if '-r' in sys.argv else SERVICE_ADDR client = junction.Client(peer_addr) client.connect() if not client.wait_connected(timeout=3): raise RuntimeError("connection timeout") print client.rpc(SERVICE, 0, "echo", ('one', ), {}) rpcs = map(lambda num: client.send_rpc(SERVICE, 0, "echo", (num, )), ('two', 'three', 'four', 'five')) dependents = [ rpc.after(functools.partial(second_call, client)).after(third_call) for rpc in rpcs ] while dependents: dep = junction.wait_any(dependents) dependents.remove(dep) print dep.value