Работа нескольких пользователей с одной командой aiogram

Возникла небольшая проблема - я использую библиотеку aiogram для аналитического бота. В боте есть команды, которыми пользуются пользователи. Эти команды вытаскивают нужные данные из БД и рассчитывают разные показатели, потом выдают информацию сообщением для пользователя.

Например есть функция, которая вычисляет определенный показатель

async def get_number(n, msg):
    result = functions.get_percent(n)
    message = f"Result - {result:.2f}"
    await bot.send_message(msg.chat.id, message)

@dp.message_handler()
async def send_text(msg: types.Message):
      if '/get_number' in msg.text.lower():
          await get_number(5, msg)

Когда несколько пользователей используют команду /get_number, то бот использует в очередь, некоторый пользователи остаются в режиме ожидания, пока команда не отработает у 1, 2, 3 и т.д. пользователя. Вопрос - как можно избежать этого и сделать отправку данных пользователям в момент использования команды, чтобы некоторые не ждали, пока функция отработает у другого человека.


Ответы (1 шт):

Автор решения: Erick L

Познакомился получше с модулем asyncio и вот решение:

from asgiref.sync import sync_to_async
result = await sync_to_async(functions.get_percent)(n)
→ Ссылка