Loading tests/redis_rpc_client.py 0 → 100644 +25 −0 Original line number Original line Diff line number Diff line import json import redis import uuid class RedisRpcClient(object): def __init__(self, redisHost, listName): self.client = redis.Redis(redisHost) self.listName = listName def send(self): print("Sending RPC request") request = { "jsonrpc": "2.0", "id": uuid.uuid1().hex } self.client.lpush(self.listName, json.dumps(request)) channel, response = self.client.brpop(request["id"], timeout = 30) response = json.loads(response.decode("utf-8")) print(response) client = RedisRpcClient('redis', 'testList') client.send() tests/redis_rpc_server.py 0 → 100644 +33 −0 Original line number Original line Diff line number Diff line import json import redis class RedisRpcServer(object): def __init__(self, redisUrl, listName): self.client = redis.from_url(redisUrl) self.listName = listName def start(self): print("Starting RPC server for " + self.listName) while True: channel, request = self.client.brpop(self.listName) channel = channel.decode("utf-8") request = json.loads(request.decode("utf-8")) print(channel) print(request) result = 42 reply = { "jsonrpc": "2.0", "result": result, "id": request["id"] } self.client.rpush(request["id"], json.dumps(reply)) self.client.expire(request["id"], 30) server = RedisRpcServer('redis://job_cache:6379', 'testList') server.start() Loading
tests/redis_rpc_client.py 0 → 100644 +25 −0 Original line number Original line Diff line number Diff line import json import redis import uuid class RedisRpcClient(object): def __init__(self, redisHost, listName): self.client = redis.Redis(redisHost) self.listName = listName def send(self): print("Sending RPC request") request = { "jsonrpc": "2.0", "id": uuid.uuid1().hex } self.client.lpush(self.listName, json.dumps(request)) channel, response = self.client.brpop(request["id"], timeout = 30) response = json.loads(response.decode("utf-8")) print(response) client = RedisRpcClient('redis', 'testList') client.send()
tests/redis_rpc_server.py 0 → 100644 +33 −0 Original line number Original line Diff line number Diff line import json import redis class RedisRpcServer(object): def __init__(self, redisUrl, listName): self.client = redis.from_url(redisUrl) self.listName = listName def start(self): print("Starting RPC server for " + self.listName) while True: channel, request = self.client.brpop(self.listName) channel = channel.decode("utf-8") request = json.loads(request.decode("utf-8")) print(channel) print(request) result = 42 reply = { "jsonrpc": "2.0", "result": result, "id": request["id"] } self.client.rpush(request["id"], json.dumps(reply)) self.client.expire(request["id"], 30) server = RedisRpcServer('redis://job_cache:6379', 'testList') server.start()