Ejemplo n.º 1
0
 def __init__(self, connect, minsize=5, maxsize=10, *args, **kwargs):
     self.connect = connect
     self.free_items = deque()
     if minsize > maxsize:
         minsize = maxsize
     self.minsize = minsize
     self.maxsize = maxsize
     self.connected_count = 0
     self.args = args
     self.kwargs = kwargs
     self.waittings = 0
     self.wait_event = '%s_%s' % (self.FREE_CONN_EVENT, id(self))
     
     # init pool
     Scheduler.instance().new(self.init(), 'PoolInit')
Ejemplo n.º 2
0
    init_task = yield NewTask(pool.init())
    yield WaitTask(init_task)
    assert pool.connected_count == minsize
    assert len(pool.free_items) == minsize
    assert not pool.waittings
    
    connected_count = pool.connected_count
    conns = []
    for _ in range(minsize):
        conns.append((yield pool.get()))
    assert connected_count == pool.connected_count
    assert len(pool.free_items) == 0
    
    for _ in range(maxsize - minsize):
        conns.append((yield pool.get()))
        assert len(pool.free_items) == 0
    assert pool.connected_count == maxsize
    assert len(pool.free_items) == 0
    
    yield NewTask(free_conn(pool, conns.pop()))
    
    conns.append((yield pool.get()))
    assert len(conns) == maxsize
    assert pool.connected_count == maxsize
    
    
    exit()

schedule = Scheduler.instance()
schedule.new(pool_test(5, 10))
schedule.mainloop()
Ejemplo n.º 3
0
def main():
    httpserver = HTTPServer(handler)
    httpserver.listen(port)
    s = Scheduler.instance(debug=False)
    s.new(httpserver.start())
    s.mainloop()