Page 1 of 1

Nach Abschluss der Hintergrundaufgabe auf eine andere Webseite umleiten

Posted: 28 Dec 2024, 17:57
by Guest
Ich habe einen Endpunkt, der einen Prozess in FastAPI auslöst. Der Vorgang dauert mehrere Minuten und erstellt eine CSV-Datei, die später von Benutzern heruntergeladen werden kann.
Wie kann ich eine Meldung zurückgeben, dass der Prozess ausgeführt wird, und die Benutzer zum „ umleiten? Seite „Herunterladen“ nachdem der Vorgang abgeschlossen ist?
Bisher gebe ich eine HTML-Antwort zurück, die auf die Seite „Herunterladen“ verweist, aber wenn der Benutzer darauf klickt bevor der Vorgang abgeschlossen ist, erhalten sie möglicherweise nicht die richtigen Ergebnisse:

Code: Select all

@router.post("/run")
async def run(background_tasks: BackgroundTasks) -> HTMLResponse:
"""
1. Run model.
2. Retrieve output file.
"""

background_tasks.add_task(optimization_process)

content = """
Generating results:

 70% 

 Visit [url=./get-results]result page[/url] to get the results

"""
return HTMLResponse(content=content)
Ich möchte dieses Setup verbessern, indem ich die Benutzer darüber informiere, dass der Prozess gestartet wurde, und sie nach der erfolgreichen Ausführung von „optimierungsprozess.