aboutsummaryrefslogtreecommitdiffstats
path: root/python/task_runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/task_runner.py')
-rw-r--r--python/task_runner.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/python/task_runner.py b/python/task_runner.py
new file mode 100644
index 00000000..bbb6a2e9
--- /dev/null
+++ b/python/task_runner.py
@@ -0,0 +1,39 @@
+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()