Thread Ausgabe eines Arrays von einem als Daemon laufenden Scripts (3 answers)
Opened by bigpuck at 2015-12-13 22:01

Linuxer
 2015-12-14 00:01
#183230 #183230
User since
2006-01-27
3871 Artikel
HausmeisterIn

user image
Wenn Du weder eine Datei noch eine DB-Abfrage nutzen willst, dann seh ich nur die Chance, dass der Daemon selbst eine Schnittstelle anbietet, an der dein Browser-Skript (nehmen wir mal ein CGI-Skript an) die passenden Daten abfragen kann.

Mögliches Schema:
  • Der Daemon fragt alle 4 Sekunden die Daten ab und schreibt diese alle 20 Sekunden in die DB und speichert eine gewisse Menge von Daten im Speicher zwischen
  • Wenn der Daemon aus einem Grund nach 19 Sekunden stirbt, dann sind hier allerdings 4 Messungen verloren (seit dem letzten DB-Speichern; nach 4,8,12 und 16 Sekunden). Frage: Will man das?
  • Der Daemon stellt parallel dazu eine Schnittstelle zur Abfrage bereit (für Beispiele siehe http://perldoc.perl.org/perlipc.html)
  • Das CGI-Skript wird aufgerufen und fragt beim Daemon nach Werten
  • Das CGI-Skript gibt Werte aus und gleichzeitig einen HTTP-Refresh Header zum Neuladen in X Sekunden.

Ob das so sinnvoll ist, sei mal dahingestellt...

Wenn das CGI-Skript noch mehr als diese Werte darstellen soll, wäre wohl eine Umgestaltung mit Ajax überlegenswert, bei der die Abfrageseite geladen wird und dann per JavaScript/Ajax die Messdaten regelmäßig abgeholt werden. Dann braucht es aber eine Schnittstelle für den Client-Browser (anders als beim CGI, wo diese Abfrage im Server erfolgen kann).


Selber würde ich das so nicht umsetzen. Sondern vielleicht eher so:

  • Der Daemon fragt die Werte ab und speichert sie in einer DB (durchaus schon im 4 Sekundentakt wie die Abfragen erfolgen; DB-Anbindung kann/sollte persistent bleiben und genutzt werden)
  • Das CGI-Skript fragt die Werte aus der DB ab und stellt diese dar. Hierüber wäre auch einstellbar, wieviele Werte dargestellt werden sollen.
  • Das CGI-Skripte sollte nicht häufiger automatisch neu geladen werden als dass die Daten in die DB geschrieben werden. Ansonsten werden sinnlos nicht aktualisierte Daten aus der DB gelesen. Außerdem würde mich das häufige Laden im Browser nerven.
  • Zeit zum Neuladen könnte man als Parameter einstellen; Default: 30 Sekunden oder 1 Minute; Einstellbar bis runter auf 4 Sekunden (nicht weniger als die Zeit zwischen DB-Aktualisierungen).
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Ausgabe eines Arrays von einem als Daemon laufenden Scripts