Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe eines Arrays mit JSON bricht ab

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Luki25
    hat ein Thema erstellt Ausgabe eines Arrays mit JSON bricht ab.

    Ausgabe eines Arrays mit JSON bricht ab

    Hallo Leute!

    ich lese mittels Raspberry Pi Wetterdaten ein und speichere diese in einer MySQL Datenbank. Dabei handelt es sich um 16 Messwerte + einen timestamp im UNIX-Format.

    Die Messdaten müssen für ein Highcharts Diagramm aus der Datenbank gelesen werden und an mein JavaScript von HighCharts geleitet werden. Das funktioniert anfangs mit der Ausgabe eines Strings in dem die Daten waren sehr schlecht und das Skript gab einen Internal Server error aus.
    Aus diesem Grund wurde das PHP-Skript zum Auslesen der Datenbank neu geschrieben und die Messwerte werden in ein Array geschrieben und über JSON ausgegeben. Ich übermittle auch nur einmal den timestamp wert, da ich die X und Y Daten dann im JavaScript zusammenführe.

    Wähle ich nun etwas mehr als 450.000 Datenpunkte, bricht die JSON Ausgabe einfach am Ende ab und das Skript liefert mir laut Firebug ein "OK 200".

    Das heißt die JSON Datei sieht folgendermaßen aus
    Code:
    [ [time1,value1,..,value16],[time2,value1,..,value16],...,[timeXXXX, valueX
    Es scheint als würde die Ausgabe einfach unterbrochen werden, da es einfach mitten drin aufhört. Da das Array nicht geschlossen wird, kann Highcharts die Daten auch nicht lesen.
    Erhöhe ich die Taktrate des RPi kann ich auch mehr Datenpunkte einlesen (bei 1 GHz waren es knapp 550.000 Datenpunkte)

    Das PHP-Skript wird ja Serverseitig, also auf dem RPi, ausgeführt. Bin ich hier an die Leistungsgrenzen des RPi gestoßen? Oder sehe ich einfach nur keine bessere Möglichkeit die Daten rüber zu bringen?

    Gruß,
    Lukas

  • Luki25
    antwortet
    Ich habe das Problem lösen können. Ich hatte schon die Vermutung das der Abbruch der Datenausgabe einfach an einem TimeOut seitens MySQL oder PHP liegt und bei übertaktetem CPU die Daten einfach nur unter dem TimeOut durchgeschoben wurden.

    Durch das Aufheben der maximalen Ausführzeit des PHP-Skriptes (Standart = 30 Sekunden) kann ich nun alle Daten verarbeiten. Ob dies nun unbegrenzt ist weiß ich nicht, da ich an Anzahl von Datensätzen eingeschränkt bin

    Der Befehl um die Limitierung der Zeit aufzuheben ist folgender:
    PHP-Code:
    set_time_limit 
    Trotzdem Danke !

    Gruß

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    Zitat von Luki25 Beitrag anzeigen
    Das PHP-Skript wird ja Serverseitig, also auf dem RPi, ausgeführt. Bin ich hier an die Leistungsgrenzen des RPi gestoßen? Oder sehe ich einfach nur keine bessere Möglichkeit die Daten rüber zu bringen?
    Eine bessere Möglichkeit wäre, aus der DB gleich JSON rauszublasen. PostgreSQL kann das z.B.

    Einen Kommentar schreiben:

Lädt...
X