Как я могу перезапустить asyncio l oop? Я слушаю веб-сокет с asyncio. Я хочу перестать слушать и перезапустить весь l oop. Как я могу это сделать? Моя попытка ниже не работает
async def start_websocket(streams):
print("using streams {}".format(streams))
await asyncio.sleep(30)
def _start_loop(loop, ws):
asyncio.set_event_loop(loop)
try:
loop.run_until_complete(ws)
except CancelledError:
pass
for streams in ["a", "b"]:
ws = start_websocket(streams) # coroutine
loop = asyncio.get_event_loop()
# in case of already running, cancel websocket
if loop.is_running():
[t.cancel() for t in asyncio.Task.all_tasks()]
# restart websocket
Thread(target=_start_loop, args=(loop, ws)).start()
time.sleep(2)
Я получаю
RuntimeError: This event loop is already running