Вот как выглядит мой базовый код
def heavylifting(self):
# Do the heavy lifting
print('Done!')
async def async_heavylifting(self):
await self.heavylifting()
Вот несколько способов, которые не работают:
Пример 1 - ничего не происходит.
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
asyncio.run_coroutine_threadsafe(self.async_heavylifting(), loop)
Example2 - Выдает событие без события l oop error
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
asyncio.create_task(self.async_heavylifting())
Example3 - Ничего не происходит
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(self.async_heavylifting())
Пример 4 - Не запускать и забывать. Блокировка при тяжелом подъеме вызова
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_in_executor(None, self.heavylifting())
Что я делаю не так? Как заставить мою функцию работать?
Примечание. Я хочу добиться того, чтобы функция «забыл и забыл» при вызове функции тяжелой атлетики. Я не хочу ждать его до конца sh