def run(): settings = load_settings('threadpool.settings') from unuk.concurrency import ThreadPool pool = ThreadPool().start() for i in range(100): pool.dispatch(Task(random.uniform(0,0.1),pool.logger)) pool.wait()
def run(): settings = load_settings('processpool.settings') from unuk.concurrency import ProcessPool pool = ProcessPool().start() for i in range(100): pool.dispatch(Task(random.uniform(0,0.1))) pool.wait()
'''A JSON-RPC Server with a task queue for performing lengthy calculations''' import os import base import time from unuk.utils import get_logger, load_settings settings = load_settings('taskqueue.settings') from unuk.core.jsonrpc import JSONRPC, Proxy from unuk.contrib.tasks import Controller def callback(**fields): pass class JsonCalculator(JSONRPC): '''JSON RPC Server with a task controller''' def __init__(self, pool): logger = get_logger(name = 'taskqueue') super(JsonCalculator,self).__init__(logger = logger) self.controller = Controller(pool).start() def jsonrpc_calculate(self, request, **kwargs): '''Dispatch new task and returns task id''' request = self.controller.dispatch('taskqueue.tasks.calctask', **kwargs) request.bind('success',callback) return request.info.todict() def jsonrpc_shutdown(self, request, **kwargs): self.stop() def stop(self):