Как асинхронно запускать функцию, которая блокирует управление?

Привет

Либа в примере - python-a2s

Задача:
- Написать функцию, которая асинхронно запускает парсер игровых серверов.
Проблема:
У парсера есть timeout, который блокирует управление. То есть код не выполняется, пока не придёт ответ от игрового сервера.
Вопрос:
Как запускать парсер для нескольких серверов и не спотыкаться о таймаут одного сервера?

# Пример парсера одного сервера
def parse_of_server(server_address):
    try:
        server_info = a2s.info(server_address)
    except:
        server_info = None
    
    return server_info


P.S. Я мучаюсь с asyncio. Если есть другие варианты, то милости прошу
  • Вопрос задан
  • 179 просмотров
Решения вопроса 2
dimonchik2013
@dimonchik2013
non progredi est regredi
1) находите любой код асинхронного парсера (asyncio, loop - вот это во все )
2) заменяете вызовы вызовами вашей функции (срабатывание негарантировано)

выбрасываете

читаете про многопоточность и мультипроцессинг
Ответ написан
Комментировать
mvxmvl
@mvxmvl Автор вопроса
Отвечу сам себе. Асинхронно вызывать функцию, в которой есть блокировка управления - плохая идея. Здесь помогла многопоточность (Спасибо dimonchik2013 ). Переписал код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект