import logging import os import redis import socket import tasks from systemd.daemon import notify from systemd import journal from json import loads, dumps from db import dbconn from termcolor import colored def run(): hostname = socket.gethostname() ET = dbconn('etdb') if hostname == 'debian': q = redis.Redis(unix_socket_path='/var/run/redis/redis.sock') os.environ['OMP_NUM_THREADS'] = '8' else: q = redis.Redis(host='debian') os.environ['OMP_NUM_THREADS'] = '4' 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()