2012-05-29 7 views
8

Ich bin neu in der Webentwicklung in Python und ich habe Flask gewählt, um meine Webanwendung zu starten. Ich habe einige Ressourcen, die ich vor dem Herunterfahren der Anwendung freigeben muss, aber ich konnte nicht herausfinden, wo ich meinen Bereinigungscode ablegen soll. Flask bietet einige Dekoratoren wie before_request und teardown_request, um Callbacks vor und nach der Verarbeitung der Anfrage zu registrieren. Gibt es etwas Ähnliches, um einen Rückruf zu registrieren, der aufgerufen wird, bevor die Anwendung beendet wird? Danke.Wo kann ich Cleanup-Code in eine Flask-Anwendung einfügen?

+3

Welche Ressourcen? –

+0

Ich kenne keine Einrichtung, die von Flask angeboten wird, wenn die Anwendung beendet wird. Es wäre interessant zu wissen, was genau du aufräumen willst. Python hat das 'atexit'-Modul, das möglicherweise das ist, wonach Sie suchen. –

+0

Ich benutze eine neo4j Datenbank und ich behalte einen Verbindungspool. Ich nehme an, dass atexit die Arbeit erledigen würde. Ist es der geeignetere Ort, um meinen Cleanup-Code zu platzieren? –

Antwort

3

Das Modul atexit ermöglicht es Ihnen, Rückrufrückrufe zu programmieren. Seine Rückrufe werden jedoch nicht aufgerufen, wenn die Anwendung durch ein Signal beendet wird. Wenn Sie diese Fälle behandeln müssen, können Sie dieselben Rückrufe mit dem Modul signal registrieren (z. B. wenn Sie das Signal SIGTERM verarbeiten möchten).

Ich habe möglicherweise missverstanden, was genau Sie bereinigen möchten, aber Ressourcen wie Dateihandles oder Datenbankverbindungen werden sowieso beim Herunterfahren des Interpreters geschlossen, also sollten Sie sich keine Sorgen machen.

Verwandte Themen