So stoppen Sie Hintergrundaufgaben in einer anmutigen Abschaltung von Fastapi
Posted: 10 Feb 2025, 06:15
Immer wenn ich meine Fastapi -App durch Speichern einer Datei (mit der Option -Reload ) anmutig heruntergefahren habe, wartet sie darauf, dass alle Hintergrundaufgaben abgeschlossen sind, bevor das Herunterfahren eingeleitet wird.
"Das Schalten von Sitzungen" wird nie protokolliert, da es darauf wartet, dass alle Hintergrundaufgaben erledigt werden, was niemals geschehen wird, bis ich Sitzung anrufe. Wie soll ich meine Sitzungen schließen, damit Fastapi richtig herunterfahren kann?
Code: Select all
uvicorn INFO: Shutting down
uvicorn INFO: connection closed
uvicorn INFO: Waiting for background tasks to complete. (CTRL+C to force quit)
< /code>
Das Problem ist, dass meine Aufgaben niemals erledigt werden, da ich sie beim Fastapi -Herunterfahren manuell abbrechen muss. Im folgenden Beispiel: < /p>
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup logic (if any)
yield
logger.info("Shutting down sessions")
# Shutdown logic (if any)
Session.close_all()