Я использую aiohttp для создания сервера API, который отправляет запросы TCP на отдельный сервер. Модуль, который отправляет запросы TCP, является синхронным и является черным ящиком для моих целей. Поэтому моя проблема заключается в том, что эти запросы блокируют весь API. Мне нужен способ обернуть запросы модуля в асинхронной сопрограмме, которая не будет блокировать остальную часть API.
Итак, просто используя sleep
в качестве простого примера, есть ли способ каким-то образом обернуть временный синхронный код в неблокирующей сопрограмме, что-то вроде этого:
async def sleep_async(delay):
# After calling sleep, loop should be released until sleep is done
yield sleep(delay)
return 'I slept asynchronously'