Allow polling for changes in watched folder

Some underlying file systems might not trigger change events (e.g.
mounted remote file systems). Added a feature flag to allow for
switching to a (less performant) polling method.
This commit is contained in:
Gina Häußge 2015-07-05 09:38:09 +02:00
parent 19b4a0f403
commit f2df1748ef
2 changed files with 9 additions and 2 deletions

View file

@ -14,6 +14,7 @@ from flask.ext.babel import Babel, gettext, ngettext
from flask.ext.assets import Environment, Bundle
from babel import Locale
from watchdog.observers import Observer
from watchdog.observers.polling import PollingObserver
from collections import defaultdict
import os
@ -399,7 +400,12 @@ class Server():
printer.connect(port=port, baudrate=baudrate, profile=printer_profile["id"] if "id" in printer_profile else "_default")
# start up watchdogs
observer = Observer()
if s.getBoolean(["feature", "pollWatched"]):
# use less performant polling observer if explicitely configured
observer = PollingObserver()
else:
# use os default
observer = Observer()
observer.schedule(util.watchdog.GcodeWatchdogHandler(fileManager, printer), s.getBaseFolder("watched"))
observer.start()

View file

@ -142,7 +142,8 @@ default_settings = {
"repetierTargetTemp": False,
"externalHeatupDetection": True,
"supportWait": True,
"keyboardControl": True
"keyboardControl": True,
"pollWatched": False
},
"folder": {
"uploads": None,