2016-08-03 19 views
1

In naher Zukunft werde ich eine Django/Gunicorn/Nginx-Website für zahlende Kunden bereitstellen. Dies ist meine erste öffentliche Website. Es wird Zeiten geben, in denen ich die Website vorübergehend für Wartungsarbeiten herunterbringen muss. Ich habe gelernt, wie ich Nginx konfigurieren kann, um eine Seite "503 Site Temporarily Available" zu erstellen, während ich meine Wartung mache und ich meine Kunden im Voraus per E-Mail informieren soll.Was passiert mit einer Django-Website, wenn Sie Gunicorn neu starten?

Wenn ich jedoch ein kritisches Problem habe und eine Einstellung oder Ansicht oder etwas ändern muss und die Site ohne vorherige Warnung neu starten muss, indem ich Gunicorn neu starte, was passiert dann aus der Sicht des Kunden? Wird die Seite nur für ein paar Sekunden langsamer? Bleiben ihre Sitzungen intakt oder gehen alle Sitzungen verloren? Offensichtlich gibt es Datenbankprobleme, wenn Schreibvorgänge auftreten. Welche Dinge werden passieren und gibt es irgendwelche Vorsichtsmaßnahmen, die ich ergreifen kann, um den Schaden zu begrenzen?

Antwort

2

Solange Sie Gunicorn nicht neu starten, indem Sie die Stromversorgung zum Server physisch unterbrechen, gibt das Betriebssystem ihm die Möglichkeit, normal herunterzufahren. Das bedeutet, dass alle aktuellen Ansichten abgeschlossen werden und alle offenen Transaktionen abgeschlossen werden.

Angenommen, Sie verwenden einen Reverseproxy wie nginx vor, und Sie starten Gunicorn sofort wieder, werden die Benutzer wahrscheinlich nicht bemerken: die Anfrage könnte einen Bruchteil einer Sekunde länger dauern, das ist alles.

Sitzungen werden in Dateien oder in der Datenbank gespeichert und bleiben daher unverändert.

+0

Danke Dan. Es ist immer gut, einen Standpunkt zu bekommen. – William