diff options
Diffstat (limited to 'gear/worker.py')
-rw-r--r-- | gear/worker.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gear/worker.py b/gear/worker.py new file mode 100644 index 00000000..1c02a112 --- /dev/null +++ b/gear/worker.py @@ -0,0 +1,31 @@ +import gear +worker = gear.Worker('reverser') +worker.addServer('localhost') +worker.registerFunction("reverse") +worker.registerFunction("build-graph") +import time +import json +from subprocess import Popen, PIPE, STDOUT + + +while True: + print "waiting for job" + job = worker.getJob() + print "received job" + if job.name == "reverse": + for x in range(0, 100000): + job.sendWorkData("This is: %s" % x) + job.sendWorkComplete("answer") + elif job.name == "build-graph": + bg_request=json.loads(job.arguments) + print "build graph!!!" + print bg_request['repo'] + print bg_request['ref'] + print bg_request['system'] + cmd = ['morph', 'calculate-build-graph', '--quiet', bg_request['repo'], bg_request['ref'], bg_request['system']] + print cmd + p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) + output = p.stdout.read() + print "finished computing build graph" + job.sendWorkComplete(output) + |