import logging import tasks from systemd.daemon import notify from systemd import journal from json import loads, dumps from db import dbconn from common import get_redis_queue def run(): ET = dbconn('etdb') q = get_redis_queue() notify("READY=1") while True: f, args = loads(q.blpop("tasks")[1].decode('utf-8')) journal.send("Running '{}'".format(f), ARGS=dumps(args)) if f == 'generate_scenarios': args += [ET] getattr(tasks, f)(*args) journal.send("'{}' completed".format(f)) 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') logger.setLevel(logging.INFO) logger.addHandler(logging.StreamHandler()) run()