@Masvy

Как исправить ошибку cannot perform operation: another operation is in progress?

Занимаюсь разработкой телеграм-бота, число пользователей которого будет составлять более 1000 человек.
В работе бота предусмотрена бд. Выбор пал Postgresql. Так как планируется большое кол-во юзеров, решил использовать принцип асинхронности, используя asyncpg.

Вот модуль, где я провожу соединение с Postgres:
import asyncio
import asyncpg
from config_data.config_db import ConfigDb, load_config_db

config: ConfigDb = load_config_db()


class DataBase:
    def __init__(self, loop: asyncio.AbstractEventLoop):
        self.pool = loop.run_until_complete(
            asyncpg.create_pool(
            user=config.database.pg_user,
            password=config.database.pg_password,
            host='localhost',
            port='5432'
            )
        )


loop = asyncio.get_event_loop()
db = DataBase(loop)


В другом модуле я провожу операции над таблицей:
from db.postgresql import db


async def add_name(name: str):
    await db.pool.execute('INSERT INTO users (name) VALUES ($3)', name)


Эту функцию я использую я использую при запросе имени и когда имя вводится, в терминале появляется ошибка:
asyncpg.exceptions._base.InterfaceError: cannot perform operation: another operation is in progress
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы