Пример #1
0
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
Пример #2
0
	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
Пример #3
0
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()
Пример #4
0
def push_task(project, task):
    key = Corellia.call(queuepool_addr, "push_task", (project, (task, request.json)))
    response.set_header("key", key)
Пример #5
0
def get_result(taskorproject, key):
    response.content_type = "application/json"
    data = Corellia.call(queuepool_addr, "get_result", (taskorproject, key))
    return json.dumps(data)
Пример #6
0
#!/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)
Пример #7
0
def add_mod(name, mod, num):
    k = Corellia.Client(("localhost", 9999))
    for _ in xrange(num):
        key = k.push_task("common", ("register", (name, mod)))