NEWS
Skript läuft doppelt - wie Zombie abschalten
-
Ich habe ein JS-Skript das mich durch seltsame Verhalten zur Verzweiflung gebracht. Jetzt habe ich eine Logausgabe geändert und stelle fest, dass sowohl die alte als auch die neue Meldung (leicht zeitversetzt) ausgegeben werden, das Skript sscheint noch als "Zombie" im Hintergrund zu laufen.
konkret hatte ich ursprünglich:
schedule("*/5 * * * *", function () // alle 5 Minuten { Now = Date.now(); console.log("5 Minuten sind rum");
das habe ich jetzt geändert zu
schedule("*/1 * * * *", function () // alle 1 Minuten { Now = Date.now(); console.log("1 Minuten sind rum");
Alle 5 Minuten kommt jetzt in der Log Konsole:
20:25:00.039 info javascript.0 (29473) script.js.Programmieren.Mail.MailListener: 1 Minuten sind rum 20:25:00.178 info javascript.0 (29473) script.js.Programmieren.Mail.MailListener: 5 Minuten sind rum
Also sieht das für mich so aus, dass eine zweite Instanz mit der 5 Minuten Ausgabe parallel zur Instanz mit 1 Minuten läuft. (Der Text "5 Minuten sind rum" kommt in der aktuellen Fassung definitiv nicht vor)
Wie werde ich diesen Zombie los? Skript neu starten oder JS-Adapter neu starten hat nichts gebracht.
-
@wolfgangfb Starte mal den Javascript - Adapter neu. Und wenn das nicht hilft den ioBroker selbst.
-
@ro75
Ich musste den IO-Broker neu startetn um den Geist loszuwerden. Gibt es da nicht auch sanftere Wege? Wie kann sowas passsieren? -
@wolfgangfb Welche Version läuft denn von dem Adapter?
-
@ro75
JavaSkript: v6.1.4 -
@wolfgangfb Aktuell. Warum und weshalb kann ich dir leider nicht beantworten. Da ich selber Zombies hatte, hatten die 2 Punkte geholfen. Nach einem Update vom Adapter tauchte bei mir allerdings das Problem nicht mehr auf.
Was eventuell Probleme verursachen kann, ist die Bezeichnung der Variable "Now", Zumal diese nirgends genutzt wird.
-
Was ist denn an Now gefährlich? Die Vaiable wird weiter unen verwendet (ich haebe ja nur den ersten Teil der Funktion hier zitiert).
-
Kann es sein, dass du 2 JS Instanzen hast.
Und dass das Script von der eine zur anderen Instanz gewechselt hast.Das war bei mir mal das Problem.
Und ja, iob neu starten ist die Lösung.
-
@wolfgangfb war mir nicht sicher, ob es ein reserviertes wort war.
-
@bahnuhr
Bei mir läut nur eine JS Instanz.