blob: bbb6a2e9aa077c4aa042e23f0824462a3cae3d3d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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()
|