@burov0798
Пытаюсь изучать php\js

Как запустить синхронную функцию асинхронно?

Добрый день. Есть библиотека для работы с Instaram, с помощью данной библиотеки через телеграм бота, я проверяю username пользователей инстаграмма:
from instagrapi import Client

cl = Client()
cl.login("login", "pass")

async def check_user(user):
    try:
        user_get = cl.user_info_by_username(user)

        if user_get:
            return user_get
        else:
            return False
    except:
        return False


Далее в коде я ее вызываю:
check_inst = await check_user(split[1])
И в ответ выдает нужную мне информацию. Но сама библиотека не асинхронная, и функция user_info_by_username блокирует все остальные процессы, и пока бот обрабатывает запрос на получении информации о пользователи, другим пользователям бот телеграм не отвечает. Могу ли я как то, с помощью asyncio выполнять эту функцию асинхронно, чтобы она не блокировало всего бота, пока выполняется?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@deliro
До python3.9 (либо для CPU-bound задач — с ProcessPoolExecutor'ом): https://docs.python.org/3/library/asyncio-eventloo...
3.9 и выше (только для IO-bound задач): https://docs.python.org/3/library/asyncio-task.htm... (это просто удобная обёртка над run_in_executor)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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