Я попробовал следующий код. Я ожидал, что блок кода «A» создаст и будет использовать цикл событий, а блок кода «B» будет использовать тот же цикл событий:
Код: Выделить всё
try:
loop = asyncio.get_running_loop() # use existing event loop
logger.info(f'*** A using existing loop {loop}')
except RuntimeError:
loop = asyncio.new_event_loop() # ... or create and use a new one
asyncio.set_event_loop(loop)
logger.info(f'*** A creating loop {loop}')
try:
loop = asyncio.get_running_loop() # use existing event loop
logger.info(f'*** B using existing loop {loop}')
except RuntimeError:
loop = asyncio.new_event_loop() # ... or create and use a new one
asyncio.set_event_loop(loop)
logger.info(f'*** B creating loop {loop}')
Код: Выделить всё
INFO:builtins:*** A creating loop
INFO:builtins:*** B using existing loop
Код: Выделить всё
INFO:builtins:*** A creating loop
INFO:builtins:*** B creating loop
Как мне это сделать? динамически создавать цикл событий тогда и только тогда, когда он еще не существует?
Подробнее здесь: https://stackoverflow.com/questions/791 ... duplicates