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()
#!/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: