Пример #1
0
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))
Пример #2
0
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))
Пример #3
0
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']
Пример #4
0
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']