Example #1
0
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()
    
        
Example #2
0
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()
    
        
Example #3
0
'''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):