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