"src_dirs": [
{
"path": "/var/local/photosort/sorted/mbk/incoming",
+ "cool_time": 60,
+ "max_time": 86400,
"cleanup": true
},
{
"path": "/var/local/photosort/shares/camera-evelyn",
+ "cool_time": 60,
+ "max_time": 86400,
"cleanup": false
},
{
"path": "/var/local/photosort/shares/camera-guenther",
+ "cool_time": 60,
+ "max_time": 86400,
"cleanup": false
}
]
for src_dir_cfg in cfg['src_dirs']:
self._sources.append(
Bunch.TriggeredSource(
- DirTrigger(src_dir_cfg['path']),
+ DirTrigger(src_dir_cfg['path'], src_dir_cfg['cool_time'], src_dir_cfg['max_time']),
Migrator(src_dir_cfg['path'], cfg['dst_dir']['path']),
src_dir_cfg['cleanup']
)
from watchdog.observers import Observer
class DirTrigger(FileSystemEventHandler):
- COOL_TIME = 10
- MAX_TIME = 86400
- def __init__(self, dir_path):
+ def __init__(self, dir_path, cool_time, max_time):
self._got_event = False
self._last_event_time = 0.0
self._last_reset_time = 0.0
+ self._cool_time = cool_time
+ self._max_time = max_time
self._lock = threading.Lock()
self._observer = Observer()
self._observer.schedule(self, path=dir_path, recursive=True)
self._lock.acquire()
try:
return ( self._got_event and
- (time.time() - self._last_event_time > DirTrigger.COOL_TIME) ) or \
- time.time() - self._last_reset_time > DirTrigger.MAX_TIME
+ (time.time() - self._last_event_time > self._cool_time) ) or \
+ time.time() - self._last_reset_time > self._max_time
finally:
self._lock.release()