import logging from systemd.daemon import notify from systemd import journal from db import dbconn from common import get_redis_queue from tasks import Rpc def run(): ET = dbconn('etdb') q = get_redis_queue() notify("READY=1") while True: rpc = Rpc.from_json(q.blpop("tasks")[1].decode('utf-8')) journal.send("Running '{}'".format(rpc.fun), ARGS=rpc.args) if rpc.fun == 'generate_scenarios': rpc.args += [ET] rpc() journal.send("'{}' completed".format(rpc.fun)) if rpc.fun == "build_portfolios": q.rpush("tasks", str(Rpc('build_scenarios', rpc.args))) if rpc.fun == "build_scenarios": q.rpush("tasks", str(Rpc('generate_scenarios', rpc.args[:-1]))) ET.close() if __name__=="__main__": logger = logging.getLogger('intex') logger.setLevel(logging.INFO) logger.addHandler(logging.StreamHandler()) run()