2016-11-01 7 views
0

Ich bemerkte, dass, wenn es keine Aktivität auf dem Server für eine Weile gibt es heruntergefahren und neu gestartet wird, wenn es neue Aktivitäten gibt, so dass alle vorherigen Zustände weg sind.Heroku - wie man Zustand speichert

Zum Beispiel habe ich eine Liste von verbundenen Benutzern mit dem Benutzernamen sie eingegeben, und die Liste wird geleert, wenn es für eine Weile keine Aktivität ist.

Was ist die empfohlene Methode, um Zustände auf Heroku zu speichern?

Würden alle paar Minuten den Status in eine Datei serialisieren? Habe ich sogar Schreibzugriff auf Heroku?

+0

Das Serialisieren in eine Datei funktioniert nicht, da das Heroku-Dateisystem [ephemeral] ist (https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem). Das ist gut, weil es Konsistenz in der Ausführung Ihrer App gewährleistet. – codefinger

Antwort

1

Ihr HTTP-Server sollte zustandslos sein - alles Wichtige sollte irgendwo anders gespeichert werden, z. B. in einer Datenbank.

+0

Wo wäre die Datenbank? Außerdem denke ich, dass eine SQL-Datenbank oder etwas Ähnliches ein Overkill für diesen kleinen Server ist, also ist es möglich, die Daten in einer Datei auf dem Server zu platzieren? – shinzou

+0

@kuhaku Sie würden es an Ihre Instanz binden; Heroku verfügt über Dutzende solcher Dienste. Und Sie sollten erwarten, dass Ihr Server jederzeit von Grund auf zerstört und neu erstellt wird. – chrylis

+0

Wenn Sie ein Dokument speichern müssen (wie Sie eine Datei erwähnt haben), könnten Sie eine [NoSQL-Datenbank] (https://elements.heroku.com/addons/mongolab) verwenden. Aber es ist nicht übertrieben. Wenn Sie einen wichtigen Status haben, muss er in eine Datenbank gehen. – codefinger