def run(services=None): if services is None: from buzi.deco import services redis_conn = get_connection() chans = [] for k, v in services.items(): logger.debug("listening for - %s", k) chans.append("fn_%s" % k) while True: t = redis_conn.blpop(chans) queue_name, value = t t1 = time.time() logger.debug("received - %s", value) v = json.loads(value.decode("utf-8")) ret = services[v["fn"]]["fn"](*v["args"], **v["kwargs"]) redis_conn.lpush("fn_result_%s" % v["uuid"], json.dumps({"result": ret})) logger.debug("returned - %s %s msecs", v["fn"], (time.time() - t1))
def run(services=None): if services is None: from buzi.deco import services redis_conn = get_connection() chans = [] for k, v in services.items(): logger.debug("listening for - %s", k) chans.append('fn_%s' % k) while True: t = redis_conn.blpop(chans) queue_name, value = t t1 = time.time() logger.debug("received - %s", value) v = json.loads(value.decode('utf-8')) ret = services[v['fn']]['fn'](*v['args'], **v['kwargs']) redis_conn.lpush('fn_result_%s' % v['uuid'], json.dumps({'result': ret})) logger.debug("returned - %s %s msecs", v['fn'], (time.time() - t1))
import uuid import time import json from buzi.conn import get_connection redis_conn = get_connection() class Buzi(object): def __init__(self): pass def call(self, name, *args, **kwargs): d = { 'fn': name, 'uuid': str(uuid.uuid4()), 'args': args, 'kwargs': kwargs } redis_conn.rpush('fn_%s' % name, json.dumps(d)) while True: ret = redis_conn.blpop('fn_result_%s' % d['uuid']) if ret: result = json.loads(ret[1]) if 'error' in result: raise Exception(result['error']) return result['result']