Variable die immer da bleibt

Django, Flask, Bottle, WSGI, CGI…
HeAdLeSs
User
Beiträge: 16
Registriert: Dienstag 8. März 2016, 09:22

Variable die immer da bleibt

Beitragvon HeAdLeSs » Mittwoch 8. November 2017, 11:19

Hallo zusammen.

Ich bastel gerade an einem Smart Home Projekt. Für die Weboberfläche arbeite ich mit Flask.
Soweit ich das 'sehe' läuft die Flask Applikation immer durch. Der Thread wird nicht beendet.
Da ich auch mit Ajax arbeite kommen da schnell recht viele Datenbankabfragen zusammen (besonders wenn mehrere Clients auf die Weboberfläche zugreifen).

Mein Gedanke ist: Um die Datenbank zu entlasten würde ich gern Werte in einer Variable hinterlegen. Da Flask nun ja durchgehend läuft ist meine Frage: Gibt es irgendwie eine Möglichkeit eine Variable dauerhaft verfügbar zu machen? Immer (solange der Server nicht beendet/neugestartet wird) und für jeden.

Sessions sind auf einen Client beschränkt. g wohl nur für einen Request.
Ich möchte gern eine Variable im Speicher halten, egal wer die App aufruft.

Ist das irgendwie möglich?
Sirius3
User
Beiträge: 7039
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Variable die immer da bleibt

Beitragvon Sirius3 » Mittwoch 8. November 2017, 12:03

@HeAdLeSs: wenn Du Glück hast, macht das die Datenbank schon für Dich. Hast Du Geschwindigkeitsprobleme?
Benutzeravatar
snafu
User
Beiträge: 5383
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Re: Variable die immer da bleibt

Beitragvon snafu » Mittwoch 8. November 2017, 12:07

HeAdLeSs hat geschrieben:Gibt es irgendwie eine Möglichkeit eine Variable dauerhaft verfügbar zu machen?

Mit Variablen sollte man das nicht tun. Meintst du vielleicht Konstanten?
shcol (Repo | Doc | PyPi)
HeAdLeSs
User
Beiträge: 16
Registriert: Dienstag 8. März 2016, 09:22

Re: Variable die immer da bleibt

Beitragvon HeAdLeSs » Mittwoch 8. November 2017, 12:27

@Sirius3
Manchmal schon. Wobei es nicht nur an der Datenbank liegt. Aber sie wird schon recht stark beansprucht.
Wie finde ich raus ob sie das schon macht?

@snafu
Soweit ich mich erinnere ist eine Konstante nicht veränderbar (sagt ja eigentlich der Name schon). Ich muss die Daten später jedoch auch aktualisieren können. Sonst müsste ich sie ja wieder aus der Datenbank holen (zum Aktualisieren) und dann wäre es ja wieder sinnlos.
Benutzeravatar
__deets__
User
Beiträge: 2137
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Variable die immer da bleibt

Beitragvon __deets__ » Mittwoch 8. November 2017, 12:46

Was du suchst nennt sich ein Cache. Das kann man machen, ist aber ein of unterschätzes Risiko. Denn zu entscheiden, was wann wie lange gecacht wird ist kompliziert & fehlerträchtig.

Ich würde eher versuchen die Engstellen zu optimieren. Vor allem weil ich mir bei deinem Projekt nicht vorstellen kann, was da wirklich zu viel sein sollte.
Benutzeravatar
noisefloor
User
Beiträge: 2225
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Re: Variable die immer da bleibt

Beitragvon noisefloor » Mittwoch 8. November 2017, 20:35

Hallo,

gängig als Cache ist heute z.B. Redis, memcached ist eine Option (die früher populärer war).

Was du bedenken muss: wenn du einen wie auch immer gearteten Cache nutzt muss du noch Mechnismen einbauen, die den Cache leeren, wenn die DB aktualisiert wurde. Das kann relativ komplex werden, siehe Post von __deets__.

Wenn du eine DB nutzt, die Ergebnisse von Queries cacht, fährst du wahrscheinlich besser. AFAIK macht PostgreSQL das standardmäßig.

Auf welcher Hardware läuft das ganze? Auf einem Raspi?

Gruß, noisefloor

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder