import logging import tasks from json import loads, dumps from db import dbconn from common import get_redis_queue def run(): ET = dbconn('etdb') q = get_redis_queue() while True: f, args = loads(q.blpop("tasks")[1].decode('utf-8')) if f == 'generate_scenarios': args += [ET] logger.info("running: {}, {}".format(f, args)) getattr(tasks, f)(*args) if f == "build_portfolio": q.rpush("tasks", dumps(("build_scenarios", args))) if f == "build_scenarios": q.rpush("tasks", dumps(("generate_scenarios", args[:-1]))) ET.close() if __name__=="__main__": logger = logging.getLogger('intex') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger.setLevel(logging.INFO) # log to stderr, which is intercepted by circus sh = logging.StreamHandler() sh.setFormatter(formatter) logger.addHandler(sh) run()