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:
parent
19b4a0f403
commit
f2df1748ef
2 changed files with 9 additions and 2 deletions
|
|
@ -14,6 +14,7 @@ from flask.ext.babel import Babel, gettext, ngettext
|
||||||
from flask.ext.assets import Environment, Bundle
|
from flask.ext.assets import Environment, Bundle
|
||||||
from babel import Locale
|
from babel import Locale
|
||||||
from watchdog.observers import Observer
|
from watchdog.observers import Observer
|
||||||
|
from watchdog.observers.polling import PollingObserver
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
import os
|
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")
|
printer.connect(port=port, baudrate=baudrate, profile=printer_profile["id"] if "id" in printer_profile else "_default")
|
||||||
|
|
||||||
# start up watchdogs
|
# 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.schedule(util.watchdog.GcodeWatchdogHandler(fileManager, printer), s.getBaseFolder("watched"))
|
||||||
observer.start()
|
observer.start()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,8 @@ default_settings = {
|
||||||
"repetierTargetTemp": False,
|
"repetierTargetTemp": False,
|
||||||
"externalHeatupDetection": True,
|
"externalHeatupDetection": True,
|
||||||
"supportWait": True,
|
"supportWait": True,
|
||||||
"keyboardControl": True
|
"keyboardControl": True,
|
||||||
|
"pollWatched": False
|
||||||
},
|
},
|
||||||
"folder": {
|
"folder": {
|
||||||
"uploads": None,
|
"uploads": None,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue