PHP mysql, daten 3mal täglich schreiben, keine doppeleinträge?

4 Antworten

Ich kenne mich mit Arduino nicht aus, aber es muss doch eine bessere Lösung geben als 30-60 identische Requests zu machen.

Z.B. könntest in einer Variable die Zeit des letzten (erfolgreichen) Requests speichern und vor jedem Request sicherstellen, dass der letzte Request mehr als eine Stunde her ist.

06:00:00 -> der letzte Request ist 7 Stunden her -> mache Request

06:00:01 -> der letzte Request ist nur eine Sekunde her -> überspringen


flyaquarius  11.05.2023, 00:01

Oder vielleicht eine bessere Idee. Du setzt die Uhrzeit des nächsten Requests.

nächster Request: 6:00

6:00:00 -> es ist 6:00 und der nächste Request soll um 6:00 erfolgen -> mache Request, setze nächsten Request auf 12:00

6:00:01 -> es ist 6:00, aber der nächste Request soll um 12:00 sein -> überspringen

...

12:00:00 -> es ist 12:00 und der nächste Request soll um 12:00 erfolgen -> mache Request, setze nächsten Request auf 23:00

0
flyaquarius  11.05.2023, 00:04
@flyaquarius

Okay, eigentlich mag ich doch die erste Variante mehr, aber 2 Minuten reichen als Zeitpuffer.

0

Das ist ja der Sinn bei unique, und dass eine Warnung ausgegeben wird auch. Du kannst ja einfach vorher überprüfen ob der Eintrag mit dem Zeitstempel schon vorhanden ist und wenn ja den Insert nicht ausführen.


jumbo125 
Beitragsersteller
 10.05.2023, 23:41

Da .üsste ich ein extra fetch query ausführen, oder? Ich möchte es so Ressourcen sparend wie möglich halten. Das läuft auf einen kleinen odroid

0
elenaBC2411  11.05.2023, 07:03
@jumbo125

Resourcensparend? Man führt das alle 2 Sekunden aus, um 3x am Tag einen Eintrag zu erzeugen und will dann bei 0,2 % der aller Requests Resourcen spearen?

1

Richte einen CRON-JOB ein, der 3 x täglich das Script ausführt.

Warum so umständlich.

Warum nicht einfach ein Flag setzten wenn der Aufruf Erfolg und dann weitere unterbinden bis der Timeslot beendet ist.