NEWS
Wie löse ich Wiederholungen
-
Ich brauche da mal einen Ratschlag. Bisher lasse ich mich an alles mögliche erinnern z. B. Fenster schließen in Abhängigkeit der Innen- und Außentemperatur. Da das alles nicht wichtig ist werde ich genau einmal erinnert. Das löse ich mit setTimeout. Das reicht mir auch nach wie vor. Da ich ggf. das ganze dann mit einer Prio 2 Pushnachricht über Pushover löse. Pushover schickt mit dann jede Minute eine neue Push bis ich es bestätige.
Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?
Soll ich setIntervall nutzen, ein Schedule, eine Schleife? Was ist Sinnvoll?
Grundgerüst:
Wenn Arbeitstag dann erste Erinnerung in 75 Minuten danach alle 30 Minuten. Wenn freier Tag Erinnerung alle 120 Minuten.
Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.
-
@cash sagte in Wie löse ich Wiederholungen:
Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?
(...)
Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.Das ist in JavaScript
clearInterval()
. Hier mal schnell zusammenkopiert ein Beispiel-Script, kannst du so im JS-Adapter testen:let intervalTimer; let counter = 0; intervalTimer = setInterval(function() { counter++; if (counter < 6) { log('Ausführung Nr. ' + counter); } else { log('Es sind bereits 5 Befehle gesendet, jetzt brechen wir ab.') clearInterval(intervalTimer); intervalTimer = null; } }, 2000);
-
@Mic Ist das wirklich die Beste Lösung? Wie schon geschrieben das Programmieren kriege ich hin mir geht es mehr darum was die Beste Lösung für dieses Problem ist...
-
Was du mit Schleife meinst ist mir jetzt nicht wirklich klar.
Imho ist eine Kombination aus setTimeout und setInterval die sauberste Lösung.
CronJob/Schedule würde ich nur für Aufgaben verwenden die zum Zeitpunkt X ausgeführt werden müssen.Gruß Tim
-
@ticaki Schleife:
for(let i = 0; i < Speaker_Anzahl; i++) {
Die erste Erinnerung habe ich nun mit setTimeout gemacht und die folgenden kürzeren mit setintervall.
Danke.
-
@cash sagte in Wie löse ich Wiederholungen:
@Mic Ist das wirklich die Beste Lösung?
Was stört dich denn daran bzw. warum denkst du, dass es keine gute Lösung sei?
-
@Mic Mich stört nichts daran und da ich keine Ahnung habe frage ich lieber mal nach. Beim suchen fand ich teils unterschiedliche Ansichten wann man setIntervall nutzen sollte oder eben nicht. Da ich dort mit den Antworten und Beispielen aber wenig anfangen konnte bzw nicht richtig verstanden habe wurde ich unsicher. Spontan hatte ich selber auch an setIntervall gedacht.
-
@cash
Passt doch, dann nimm einfach setInterval() / clearInterval(), das läuft wirklich sehr zuverlässig.