“Feuer und vergiss” Python async / wait

Manchmal muss ein nicht kritischer asynchroner Vorgang ausgeführt werden, aber ich möchte nicht warten, bis der Vorgang abgeschlossen ist. In der Coroutine-Implementierung von Tornado können Sie eine asynchrone Funktion "abfeuern und vergessen", indem Sie einfach das @ weglasseyield Stichwort

Ich habe versucht herauszufinden, wie man mit dem neuen @ "feuert und vergisst&quoasync/await -Syntax in Python 3.5 veröffentlicht. Zum Beispiel ein vereinfachtes Code-Snippet:

async def async_foo():
    print("Do some stuff asynchronously here...")

def bar():
    async_foo()  # fire and forget "async_foo()"

bar()

Was aber passiert ist, dassbar() wird nie ausgeführt und stattdessen wird eine Laufzeitwarnung angezeigt:

RuntimeWarning: coroutine 'async_foo' was never awaited
  async_foo()  # fire and forget "async_foo()"

Antworten auf die Frage(6)

Ihre Antwort auf die Frage