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)