NEWS
[gelöst] Frage zu Chokidar
-
Hi,
ich experimentiere gerade mit chokidar herum um bei neuen Dateien von meiner Kamera sofort Aktionen auszulösen.
Ich habe folgendes Script implementiert:
var chokidar = require('chokidar'); var watcher = chokidar.watch('file or dir', {ignored: /^\./, persistent: true}); watcher .on('add', function(path) {console.log('File', path, 'has been added');})
Das Script tut was es soll aber jedes mal wenn ich was ändere dann wird der alte code bei Änderungen weiterhin ausgeführt.
wenn ich beispielsweise folgendes anpasse:
.on('add', function(path) {console.log('Foo!');})
dann steht im Logbuch beim nächsten mal wenn ich die Datei horst.kevin hinzufüge
File "horst.kevin" has been added!
Foo!mit jeder Änderung werden es mehr "instanzen".
Ein Neustart der Java Instanz löst das Problem und es beginnt von vorne.Kennt sich jemand damit aus?
Nils -
@jmeister79 setze
ignoreInitial: true
. chokidar funktioniert nicht so recht mit Netzwerkpfaden bzw mounts. Gelöschte Dateien meldet es bei mir zB nicht. -
@fastfoot Ich nutze einen Pfad im raspberry auf dem der ioBroker läuft. Mein Pi ist gleichzeiig n ftp server und die Cam schmeißt aktiv die Bilder drauf.
-
@jmeister79 sagte in Frage zu Chokidar:
@fastfoot Ich nutze einen Pfad im raspberry auf dem der ioBroker läuft. Mein Pi ist gleichzeiig n ftp server und die Cam schmeißt aktiv die Bilder drauf.
dann sollte es funktionieren
-
@fastfoot aber das mit dem initial wäre das nächste problem! Danke dafür.
Aber nach wie vor wird bei jedem Bearbeiten des scripts ein watcher mehr erschaffen.
Ich glaube ich verstehe da etwas grundsätzliches nicht, was daran liegen kann, dass ich learning by doing mache.
-
@jmeister79 sagte in Frage zu Chokidar:
@fastfoot aber das mit dem initial wäre das nächste problem! Danke dafür.
Aber nach wie vor wird bei jedem Bearbeiten des scripts ein watcher mehr erschaffen.
Ich glaube ich verstehe da etwas grundsätzliches nicht, was daran liegen kann, dass ich learning by doing mache.
Evtl. hast du ein Problem weil Du den Watcher nicht beendest. Bei Scriptende muss der beendet werden sonst läuft er im Hintergrund weiter.
//Wichtig beim Beenden des Skriptes onStop(() => { watcher.close() .then(log('Watcher gestoppt', 'info')) })
-
@fastfoot PERFEKT!!!!
Das hat geholfen. Hätte ich auch lesen können.Danke dir!!