Example #1
0
def pool_test(minsize, maxsize):
    pool = Pool(connect, minsize, maxsize, host='10.20.238.182', port=3306, user='******', password='******', db='webauth')
    assert pool.connected_count == 0
    assert len(pool.free_items) == 0
    assert not pool.waittings
    assert pool.maxsize == maxsize
    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()
Example #2
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""A very simple small web
"""
from random import randint
from datetime import datetime
import time

from litchi.http import HTTPServer, HTTPReponse
from litchi.schedule import Scheduler
from litchi.db.mysql import connect
from litchi.pool import Pool

pool = Pool(connect, 50, 50, host="10.20.238.182", port=3306, user="******", password="******", db="webauth")

count = 0
debug = False


def handler(request):

    if debug:
        global count
        count += 1
        index = count
        print "start-%d" % index, pool.connected_count, len(pool.free_items), pool.waittings
    conn = yield pool.get()
    if debug:
        print "get-%d" % index, pool.connected_count, len(pool.free_items), pool.waittings

    try: