Проблемы при использовании пула соединений
При использовании пула соединений, после выполнения запроса к базе, соединение не закрывается, а после достижения лимита, база вообще не отвечает
Вот мой код
import asyncio
import datetime
import aiosqlite
class BotDB:
def __init__(self, db_file, pool_size=10):
self.db_file = db_file
self.pool = asyncio.Queue()
for _ in range(pool_size):
self.pool.put_nowait(aiosqlite.connect(db_file))
async def acquire_connection(self):
return await self.pool.get()
async def release_connection(self, conn):
self.pool.put_nowait(conn)
async def execute_query_one(self, query, *args):
async with await self.acquire_connection() as conn:
cursor = await conn.execute(query, args)
return await cursor.fetchone()
async def execute_query_all(self, query, *args):
async with await self.acquire_connection() as conn:
cursor = await conn.execute(query, args)
return await cursor.fetchall()
async def execute_modify_query(self, query, *args):
async with await self.acquire_connection() as conn:
cursor = await conn.execute(query, args)
await conn.commit()
return await cursor.rowcount
async def user_exists(self, tutor_id): # Простенький запрос к базе, для примера
"""Перевіряємо чи є репетитор в базі"""
query = "SELECT tutor_id FROM Tutors WHERE tutor_id = ?"
result = await self.execute_query_one(query, tutor_id)
return bool(len(result))
Буду очень рад помощи, потому что уже второй день мучаюсь над данной проблемой