asyncio-Snippet: Laufende Event-Loop abrufen oder neue Loop erstellen

Dieses asyncio-Snippet zeigt, wie man die laufende Event-Loop abruft oder eine neue Loop erstellt, wenn keine läuft.

get_or_create_eventloop.py
import asyncio

def get_or_create_eventloop():
    try:
        return asyncio.get_event_loop()
    except RuntimeError as ex:
        if "There is no current event loop in thread" in str(ex):
            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
            return asyncio.get_event_loop()
        else:
          raise

# Usage example:
get_or_create_eventloop().create_task(asyncio.sleep(1))

Check out similar posts by category: Python