@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.
Was ist an dem 'normalen' Cron nicht genau genug ? Wie ungenau ist das denn aktuell.
Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.
Aufwand, und letztendlich auch witzlos, weil der Eintrag */15 * * * * letztendlich genau das gleiche Ergebnis hat wie deine 96 Datenpunkte. Die Ungenauigkeiten kommen aus der Laufzeit im System, sprich der Zeit zwischen das OS erkennt das der Zeitpunkt erreicht ist und der Wert ist im DP gespeichert.
Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Gibt es: Nutz den normalen Cron mit */15 * * * *, stell sicher dass:
der Aktuelle Verbrauchswert bereits im Speicher ist (so das du den nicht aus dem Objektbaum oder sogar vom Gerät holen musst)
sämtliche notwendigen Berechnungen bereits erfolgt sind
das System ansonsten möglichst wenig Zeit-basierte Aktionen macht (sprich idealerweise genau einen cron-Job der zur vollen 1/4 Stunde aktiv wird.
Die Systemzeit auf die µs exakt ist (viel Spass dabei)
Das System sich zu dem Zeitpunkt idealerweise langweilt, und nicht mit shared resources arbeitet. (Also auf dedizierter Hardware nativ läuft, ohne Docker, VM, Proxxmox, etc, und auch nicht auf einem NAS)
Unterm Strich stellt sich die Frage wozu das ganze ? Was muss mit so genauen Heartbeats geschehen das Verzögerungen im 100-300 ms Bereich (und das sollte hoch gegriffen sein) problematisch sind ?
Danke schonmal im voraus.
Gruß
Martin
A.