From 5bbbcd46972b9286548d25c8728293b0eda53915 Mon Sep 17 00:00:00 2001 From: Andreas Valder <andreasv@fsmpi.rwth-aachen.de> Date: Thu, 3 Nov 2016 15:00:16 +0100 Subject: [PATCH] non functional prototype --- .gitignore | 2 ++ worker.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc130b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +config.ini diff --git a/worker.py b/worker.py index d89e6f4..f050877 100755 --- a/worker.py +++ b/worker.py @@ -1,6 +1,50 @@ #!/usr/bin/env python3 -import config import requests +import time +import threading +import sched +import random +import traceback +import configparser -if __name__ == '__main__': - print('foo') +config = configparser.ConfigParser() +config.read('config.ini') + +scheduler = sched.scheduler() +def run_scheduler(): + time.sleep(1) # weird things on startup + while True: + scheduler.run() + time.sleep(10) + +def sched_func(delay, priority=0, firstdelay=None, args=[], kargs={}): + print(delay) + if firstdelay == None: + firstdelay = random.randint(1, 10) + def wrapper(func): + def sched_wrapper(): + try: + func(*args, **kargs) + except Exception: + traceback.print_exc() + scheduler.enter(delay, priority, sched_wrapper) + scheduler.enter(firstdelay, priority, sched_wrapper) + return func + return wrapper + +threading.Thread(target=run_scheduler, daemon=True).start() + +@sched_func(5) +def ping_website(): + r = requests.post(config['API']['BASE']+'/jobs/api/ping', params={'apikey': config['API']['KEY'], 'host':config['MAIN']['HOST']}) + if not r.status_code == 200: + print("Error sending ping: ",r) + +@sched_func(10) +def get_jobs(): + r = requests.post(config['API']['BASE']+'/jobs/api/schedule', json={'apikey': config['API']['KEY'], 'host':config['MAIN']['HOST'], 'jobtypes': 'thumbnail'}) + print(r.text) + + +while True: + time.sleep(10) -- GitLab