NEWS
Wie auf ein Timing triggern?
-
Hallo zusammen,
ich habe hier von einem Datenpunkt eine Zustandsänderung und speichere das Datum und Uhrzeit der Änderung in einen weiteren Datenpunkt.
Nun möchte ich aber z.B. 40 Minuten nach der Zustandsänderung ein Bool auf true setzen.
Klar, ich kann die Differenz von der Zeit und Zustandänderung bilden und das setzen, doch auf was triggert man die Berechnung? Ich kann ja schlecht auf die Zeit und jede Sekunde triggern und berechnen. -
Hallo zusammen,
ich habe hier von einem Datenpunkt eine Zustandsänderung und speichere das Datum und Uhrzeit der Änderung in einen weiteren Datenpunkt.
Nun möchte ich aber z.B. 40 Minuten nach der Zustandsänderung ein Bool auf true setzen.
Klar, ich kann die Differenz von der Zeit und Zustandänderung bilden und das setzen, doch auf was triggert man die Berechnung? Ich kann ja schlecht auf die Zeit und jede Sekunde triggern und berechnen.@hg6806 Du kannst doch aus dem Timestamp +40 Minuten einen Cron-Trigger bauen!
z.B.:

oder parallel zum Eintrag in den 2. DP einen Timeout starten
-
Timeout habe ich nie verstanden. Was ist denn der Unterschied zwischen Pause und timeout?
Heißt, ich triggere auf die Zustandsänderung und warte dann z.B. 40 Min.
Über timeout oder Pause? -
Timeout habe ich nie verstanden. Was ist denn der Unterschied zwischen Pause und timeout?
Heißt, ich triggere auf die Zustandsänderung und warte dann z.B. 40 Min.
Über timeout oder Pause?@hg6806 sagte in Wie auf ein Timing triggern?:
Timeout habe ich nie verstanden. Was ist denn der Unterschied zwischen Pause und timeout?
Der Unterschied ist relativ einfach.
Beim
PauseBefehl wird dem Skript gesagt - warte X Zeiteinheiten und mach dann weiter, sprich der Ablauf pausiert in der Zeit. Die Pause kann weder unterbrochen noch abgebrochen werden, das Skript macht auf jeden Fall nach Ablauf der Pausenzeit weiter.Beim Timeout (
setTimeoutBefehl) wird in einer im System vorhandenen Liste eingetragen das zu einem bestimmten Zeitpunkt etwas passieren soll. Das Ergebnis dieses Befehls ist einHandlezu genau diesem Eintrag. Der Ablauf selber geht aber normal weiter.Über den
Handlekannst Du dann auch den Eintrag aus der Liste heraus nehmen, wenn er nicht mehr benötigt wird.Heißt, ich triggere auf die Zustandsänderung und warte dann z.B. 40 Min.
Über timeout oder Pause?Ja.
Bei 40 Minuten solltest du auf jeden Fall nicht über
Pausewarten. Das Risiko das zwischendurch etwas passiert das dafür sorgt das sich am Zeitablauf was ändert ist einfach zu gross.
Auch die Verwendung einessetTimeouthat hier seine Tücken. Sollte das Skript in der Zwischenzeit neu gestartet werden geht der timeout und damit die Verzögerte Aktion verloren. Bei so langen Zeiträumrn wǔrde ich aus der Uhrzeit zu der etwas passieren soll immer einenZeitplanmachen.A.
-
@hg6806 sagte in Wie auf ein Timing triggern?:
Das verstehe ich aber auch nicht was es macht.
ist das hier besser?

Das müsste im Prinzip so in dein unbekanntes Skript passen.
-
@homoran Danke für deine Bemühungen.
Ich versuche es mal zu verstehen.
Die Variable jetzt wird auf die jetzige Zeit +40Min gesetzt und nach jjjj.mm.tt.... formatiert.
Debug output wofür? Nur als Info?
Und wenn die Zeit die Variable Zeit erreicht wird dann etwas ausgeführt.
Also muss ich vorher noch auf meine Zustandänderung triggern?
Und wie bekomme ich von
den CRON Block? -
@homoran Danke für deine Bemühungen.
Ich versuche es mal zu verstehen.
Die Variable jetzt wird auf die jetzige Zeit +40Min gesetzt und nach jjjj.mm.tt.... formatiert.
Debug output wofür? Nur als Info?
Und wenn die Zeit die Variable Zeit erreicht wird dann etwas ausgeführt.
Also muss ich vorher noch auf meine Zustandänderung triggern?
Und wie bekomme ich von
den CRON Block?@hg6806 sagte in Wie auf ein Timing triggern?:
Debug output wofür? Nur als Info?
Natürlich, sonst sehe ich ja nix.
ich hab ja dein Skript und deine DP nicht.@hg6806 sagte in Wie auf ein Timing triggern?:
Und wenn die Zeit die Variable Zeit erreicht wird dann etwas ausgeführt.
richtig, den unbekannten bool auf true setzen.
@hg6806 sagte in Wie auf ein Timing triggern?:
Also muss ich vorher noch auf meine Zustandänderung triggern?
nein!
sagte in Wie auf ein Timing triggern?:
so in dein unbekanntes Skript
einfügen
die ersten drei Zeilen bis zum debug unmittelbar dort wo du das Datum in den unbekannten DP scheibst, der Trigger außerhalb des Triggers des bisherigen Skripts.
Wobei du den Datenpunkt und das dort eingetragene Datum wahrscheinlich n7cht nehr benötigen würdest.@hg6806 sagte in Wie auf ein Timing triggern?:
Und wie bekomme ich von
den CRON Block?
das musst du einfügen, wie ich es gezeigt habe
-
@homoran Danke für deine Bemühungen.
Ich versuche es mal zu verstehen.
Die Variable jetzt wird auf die jetzige Zeit +40Min gesetzt und nach jjjj.mm.tt.... formatiert.
Debug output wofür? Nur als Info?
Und wenn die Zeit die Variable Zeit erreicht wird dann etwas ausgeführt.
Also muss ich vorher noch auf meine Zustandänderung triggern?
Und wie bekomme ich von
den CRON Block?@hg6806 sagte: wie bekomme ich den CRON Block?
Unter "Trigger" weiter unten.
@hg6806 sagte in Wie auf ein Timing triggern?:
muss ich vorher noch auf meine Zustandänderung triggern?
Ja, und der laufende Zeitplan muss dabei gestoppt werden.
Vorschlag:
Da ich gerne Listen verwende, habe ich den verzögerten Zeitstempel nach "M:T:S:m" konvertiert.
EDIT: Mit Sekunden:

-
Moin!
Recht aufwendig das Ganze, die Vergehensweise habe ich aber mittlerweile soweit verstanden und klappt auch.
Vielen Dank!