def test_single(no): k = Corellia.Client(("localhost", 9999)) key = k.push_task("echo", no) res = None while res == None: try: res = k.get_result("echo", key) except Exception: try: k = Corellia.Client(("localhost", 9999)) res = k.get_result("echo", key) except Exception: pass sleep(0.2) print key, no, res
def run(self, queuepool_addr, queue): self.queue = None while True: if not self.queue: try: self.queue = Corellia.Client(queuepool_addr) except KeyboardInterrupt: break except Exception: sleep(2) continue task = self.queue.pop_task(queue) if not task: self.queue = None continue key, msg = task try: res = self.handle(msg) self.queue.finish_task(queue, key) except KeyboardInterrupt: break except Exception: continue if res != None: if not self.queue.put_result(queue, key, res, self.result_ttl): self.queue = None continue
def test_2(): k = Corellia.Client(("localhost", 9999)) print k.push_task(123) print k.push_task(223) print k.status() key, item = k.pop_task() print key, item print k.status() sleep(6) print k.status() print k.put_result(key, 10) print k.status() sleep(6) print k.status()
#!/usr/bin/env python import sys;sys.path.append("../") from Piranha import config from bottle import get, put, request, response, run import Corellia queuepool_addr = (config.queuepool_host, config.queuepool_port) client = Corellia.Client(queuepool_addr) import json @get("/result/<taskorproject>/<key>") def get_result(taskorproject, key): response.content_type = "application/json" data = Corellia.call(queuepool_addr, "get_result", (taskorproject, key)) return json.dumps(data) @put("/task/<task>") def push_task(task): key = Corellia.call(queuepool_addr, "push_task", (task, request.json)) response.set_header("key", key) @put("/task/<project>/<task>") def push_task(project, task): key = Corellia.call(queuepool_addr, "push_task", (project, (task, request.json))) response.set_header("key", key) if __name__ == '__main__': run(server=config.web_server, port=config.web_port)
def add_mod(name, mod, num): k = Corellia.Client(("localhost", 9999)) for _ in xrange(num): key = k.push_task("common", ("register", (name, mod)))