Планирование asyncio сопрограммы из другого потока
Я пытаюсь запланировать сопрограмму Asyncio из другого потока, используяcreate_task()
, Проблема в том, что сопрограмма не вызывается, по крайней мере, в разумные сроки.
Есть ли способ разбудить цикл событий или хотя бы указать более короткое время ожидания?
#!/usr/bin/python3
import asyncio, threading
event_loop = None
@asyncio.coroutine
def coroutine():
print("coroutine called")
def scheduler():
print("scheduling...")
event_loop.create_task(coroutine())
threading.Timer(2, scheduler).start()
def main():
global event_loop
threading.Timer(2, scheduler).start()
event_loop = asyncio.new_event_loop()
asyncio.set_event_loop(event_loop)
event_loop.run_forever()
main()
Выход:
scheduling...
scheduling...
scheduling...
scheduling...