Как ожидать асинхронную функцию в синхронизированной функции, вызываемой из асинхронной? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть колба среднего размера, которую я хочу преобразовать в asyncio.В настоящее время моя проблема состоит в том, что у меня есть некоторые сетевые вызовы 10-12 функции в стек вызовов, но я подведу итог моей проблемы на простом примере:

import asyncio

async def blocking_task():
    await asyncio.sleep(1)

def sync_method():
    await blocking_task() # Error here. This is not async method, but it is called by async method in the event loop

async def async_enrty():
    sync_method()

def main():
    loop = asyncio.get_event_loop()
    loop.run_until_complete(async_enrty())
    loop.close()
main()

Допустим, у меня есть задача блокировки - blocking_task() иЯ хочу ждать этого.Поскольку стек вызовов довольно большой, я должен сделать каждую функцию асинхронной и ожидать каждой вызываемой функции, пока она не достигнет моего blocking_function.Поскольку я вызываю эту функцию в цикле обработки событий, есть ли способ ее ожидания без использования async / await вплоть до функции блокировки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...