16.aiomysql-Pool
Pool-aiomysql 0.0.9 documentation
Pool
이 라이브러리는 연결 탱크와 일반 연결 대상을 제공합니다.
기본 용도는 다음과 같습니다.
import asyncio
import aiomysql
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go()
pool = yield from aiomysql.create_pool(host='127.0.0.1', port=3306,
user='root', password='',
db='mysql', loop=loop)
with (yield from pool) as conn:
cur = yield from conn.cursor()
yield from cur.execute("SELECT 10")
# print(cur.description)
(r,) = yield from cur.fetchone()
assert r == 10
pool.close()
yield from pool.wait_closed()
loop.run_until_complete(go())
create_pool
(minsize=1, maxsize=10, loop=None, **kwargs) - MySQL 데이터베이스의 연결 풀에 대한 공동 절차를 만듭니다.
매개변수:
반환:
Pool 인스턴스
Pool류
연결 풀 1개
Pool이 생성된 후minsize가 지정한 빈 연결을 가지고maxsize가 정한 연결수까지 연장할 수 있습니다.
minsize가 0이면 Pool이 시작할 때 연결을 만들지 않습니다.
maxsize가 0이면 Pool의 크기는 제한이 없습니다. (물론 사용이 끝난 연결을 회수합니다.)
Pool을 사용하는 가장 중요한 방법은 다음과 같은 문구로 데이터베이스 연결을 가져오는 것입니다.
with (yield from pool) as conn:
cur = yield from conn.cursor()
with 문장을 사용하지 않으려면 별도로 참고할 수 있음
Pool.acquire() Pool.release() 。
Pool 클래스의 속성:
1. echo: echo 모드 상태로 돌아갑니다.True인 경우 실행된 모든 질의를 aiomysql이라는 logger에 기록합니다.
2. minsize: Pool의 최소 크기(읽기만 가능), 기본값은 1입니다.
3. maxsize: Pool의 최대 크기(읽기만 가능), 기본값은 10입니다.
4. size: 현재 Pool의 크기(읽기만 가능), 사용된 것과 빈 연결을 포함한다.
5.freesize:Pool에서 빈 연결 수(읽기만 가능);
방법:
1、 clear
()
pool 닫기
닫을 pool 연결을 표시합니다. 닫힌 pool은 새로운 연결을 허용하지 않습니다.
이미 받은 연결의 실제 종료를 기다리고 싶으면 close() wait_closed()。
경고: 이 방법은 하나의 협정이 아니다!
2、 terminate
()
pool을 종료하고 pool을 닫으며 가져온 모든 연결을 즉시 닫습니다.
terminate () 방법 후 호출 wait_closed() 。
경고: 이 방법은 하나의 협정이 아니다!
3、 wait_closed
()
연결된 모든 연결을 풀고 닫기를 기다리는 협정
실제 pool이 닫힐 때까지 close () 다음에 호출해야 합니다.
4、 acquire
()
빈 pool에서 연결의 협정을 가져옵니다.필요에 따라 새 연결을 만들고 pool의 크기는 maxsize보다 작습니다.
Connection 인스턴스를 반환합니다.
5、 release
(conn)
연결 conn을 빈 pool로 변환하여 나중에 다시 사용할 수 있도록 합니다.
마지막으로 connection pool 방식을 사용하는 또 다른 예제 코드를 붙여 넣습니다.import asyncio
import aiomysql
async def test_example(loop):
pool = await aiomysql.create_pool(host='127.0.0.1', port=3306,
user='root', password='',
db='mysql', loop=loop)
async with pool.acquire() as conn:
async with conn.cursor() as cur:
await cur.execute("SELECT 42;")
print(cur.description)
(r,) = await cur.fetchone()
assert r == 42
pool.close()
await pool.wait_closed()
loop = asyncio.get_event_loop()
loop.run_until_complete(test_example(loop))
posted on
2018-04-12 19:05 Hello _ World 읽기(
...) 설명(
...) 모음 편집
전재 대상:https://www.cnblogs.com/zwb8848happy/p/8809861.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.