def start_watch(path, callback):
observer = Observer()
observer.schedule(
MyFileSystemEventHander(restart_process), path, recursive=True)
observer.start()
log('Watching directory %s...' % path)
start_process()
try:
while True:
time.sleep(0.5)
except KeyboardInterrupt:
observer.stop()
observer.join()
python类Observer()的实例源码
def test_monitor(ctx):
"""run the tests and re-run on changes"""
sh('python3 -m pytest')
while True:
event_handler = RunTestChangeHandler(ctx)
observer = Observer()
observer.schedule(event_handler, './tests', recursive=True)
observer.schedule(event_handler, './qface', recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def _script_reload(script, input, output):
"""run the named generator and monitor the input and generator folder"""
input = [Path(entry).expand().abspath() for entry in input]
output = Path(output).expand().abspath()
cmd = 'python3 {0} {1} {2}'.format(script, ' '.join(input), output)
event_handler = RunScriptChangeHandler(cmd)
event_handler.run() # run always once
observer = Observer()
path = script.dirname().expand().abspath()
click.secho('watch: {0}'.format(path), fg='blue')
observer.schedule(event_handler, path, recursive=True)
for entry in input:
entry = entry.dirname().expand().abspath()
click.secho('watch: {0}'.format(entry), fg='blue')
observer.schedule(event_handler, entry, recursive=True)
path = Path(__file__).parent / 'qface'
click.secho('watch: {0}'.format(path), fg='blue')
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def monitor(script, src, dst):
"""
reloads the script given by argv when src files changes
"""
src = src if isinstance(src, (list, tuple)) else [src]
dst = Path(dst).expand().abspath()
src = [Path(entry).expand().abspath() for entry in src]
script = Path(script).expand().abspath()
command = '{0} {1} {2}'.format(script, ' '.join(src), dst)
event_handler = RunScriptChangeHandler(command)
observer = Observer()
click.secho('watch recursive: {0}'.format(script.dirname()), fg='blue')
observer.schedule(event_handler, script.dirname(), recursive=True)
for entry in src:
click.secho('watch recursive: {0}'.format(entry), fg='blue')
observer.schedule(event_handler, entry, recursive=True)
event_handler.run() # run always once
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def _register_watcher(self):
logger.debug("Register File Watcher for {0}".format(self.plugin_name))
self.event_handler = PluginEventHandler(self.plugin_name,
self._reload_plugin)
self.observer = Observer()
self.observer.schedule(self.event_handler, self.plugin_dir)
self.observer.start()
def start_observing(self):
paths_to_observe = []
with open(unicode(SYNC_DIRECTORIES_FILE), 'rb') as stream:
for rowdata in csv.reader(stream):
for column, data in enumerate(rowdata):
if column == 0:
paths_to_observe.append(str(data.decode('utf8')))
print data.decode('utf8')
paths_to_observe.append("/home/lakewik/storjsync")
self.observer = Observer()
for path in paths_to_observe:
self.observer.schedule(FileChangesHandler(), path=str(path))
self.observer.start()
print "Synchronization directories observing started!"
self.is_sync_active = True
def startMonitor(mpath,plugin_path,logger,log_file,objClass):
"""
?????
mpath?????
plugin_path,????
log_file,??????
objClass?????
"""
t_str = time.strftime('%Y%m%d%H%M%S')
logger.info("service is started !!!!")
logger.info("monitor path :" + mpath)
logger.info("plugin path :" + plugin_path)
logger.info("log file :" + log_file)
logger.info(" base class of plugin :" + str(objClass))
try :
observer = Observer()
event_handler = FileEventHandler(mpath,plugin_path,logger,log_file,objClass)
observer.schedule(event_handler,mpath,True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt,e:
observer.stop()
logger.error("{'time':'"+t_str+"','module':'FileSystemMonitor','class':'None','method':'startMonitor' ,'errors':'" +str(e)+"'}")
observer.join()
except Exception,e :
logger.error("{'time':'"+t_str+"','module':'FileSystemMonitor','class':'None','method':'startMonitor' ,'errors':'" +str(e)+"'}")
def __init_watchers(self):
event_handler = FSEventHandler(self.set_data)
self.observer = Observer()
self.observer.schedule(event_handler, config.XML_DIR)
self.observer.start()
def __init__(self, code_path, round_time=None, mute=False, test_runner=None):
self.code_path = code_path
self.round_time = round_time or self.ROUND_TIME
self.sound_player = mock.Mock() if mute else SoundHandler()
test_runner = test_runner or DoctestTestRunner(code_path=code_path,
sound_player=self.sound_player)
event_handler = DojoCodeHandler(dojo=self, test_runner=test_runner)
self.observer = Observer()
self.observer.schedule(event_handler, self.code_path, recursive=False)
self.timer = Timer(self.round_time)
def start(self):
self.observer = Observer()
self.observer.schedule(self, self.monitor_dir)
self.observer.start()
print("Starting to watch for new pdfs in %s" % (self.monitor_dir))
while True:
logging.info("Sleeping for %d seconds" % self.scan_interval)
time.sleep(self.scan_interval)
newFile = self.check_queue()
if newFile:
yield newFile
self.observer.join()
def start(self):
self.observer = Observer()
self.observer.schedule(self, self.monitor_dir)
self.observer.start()
print("Starting to watch for new pdfs in %s" % (self.monitor_dir))
while True:
logging.info("Sleeping for %d seconds" % self.scan_interval)
time.sleep(self.scan_interval)
newFile = self.check_queue()
if newFile:
yield newFile
self.observer.join()
def start(self):
self.observer = Observer()
self.observer.schedule(self, self.monitor_dir)
self.observer.start()
print("Starting to watch for new pdfs in %s" % (self.monitor_dir))
while True:
logging.info("Sleeping for %d seconds" % self.scan_interval)
time.sleep(self.scan_interval)
newFile = self.check_queue()
if newFile:
yield newFile
self.observer.join()
def start(self):
self.observer = Observer()
self.observer.schedule(self, self.monitor_dir)
self.observer.start()
print("Starting to watch for new pdfs in %s" % (self.monitor_dir))
while True:
logging.info("Sleeping for %d seconds" % self.scan_interval)
time.sleep(self.scan_interval)
newFile = self.check_queue()
if newFile:
yield newFile
self.observer.join()
def __run(self, event):
"""
Create watchdog Observer object and start service
"""
obsrv = Observer()
obsrv.schedule(self, path=self.sprecog.dirpath, recursive=False)
obsrv.start()
event.wait()
if event.is_set():
obsrv.stop()
obsrv.join()
def run(self):
observer = Observer()
event_handler = FileEventHandler(self.path)
observer.schedule(event_handler, self.path, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def start_watch(path, callback):
observer = Observer()
observer.schedule(MyFileSystemEventHander(restart_process), path, recursive=True)
observer.start()
log('Watching directory %s...' % path)
start_process()
try:
while True:
time.sleep(0.5)
except KeyboardInterrupt:
observer.stop()
observer.join()
def __init__(self, paths, reg_ignore):
self.paths = paths
self.reg_ignore = reg_ignore
sys.stderr.write(self.summary())
self.generate_conf()
self.copy_ignorefile()
self.observer = Observer()
# ??????????
for path in config.WATCH_PATH:
qiniu_syn(path)
self.start_watch()
# ??????
def main():
for folder in config.DEFAULT_FOLDERS:
if not os.path.exists(folder):
logger.info('creating folder: ' + folder)
os.makedirs(folder)
path = config.READ_FROM_DIRECTORY
process_existing(path)
observer = Observer()
observer.schedule(
JsonFileHandler([r'.*\.json'], case_sensitive=False),
path,
recursive=True
)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def on_init(self):
super().on_init()
self.path = self.configuration["input"]
self.recursive_flag = (
str.lower(self.configuration["option"]) == "recursive")
self.trigger = self.configuration["monitor"]
if "patterns" in self.configuration:
self.patterns = self.configuration["patterns"].split(" ")
if "ignore_patterns" in self.configuration:
self.ignore_patterns = self.configuration[
"ignore_patterns"].split(" ")
if "ignore_directories" in self.configuration:
self.ignore_directories = True
if "case_sensitive" in self.configuration:
self.case_sensitive = True
my_event_handler = DannyFileSystemEventHandler(self.patterns,
self.ignore_patterns,
self.ignore_directories,
self.case_sensitive)
my_event_handler.delegates.append(self)
if "timeout" in self.configuration:
self.timeout = int(self.configuration["timeout"])
self.observer = Observer(self.timeout)
self.observer.schedule(my_event_handler, self.path,
recursive=self.recursive_flag)
self.observer.start()
def _watch(path):
filename = os.path.abspath("../file.log")
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename=filename,
filemode='w'
)
#event_handler = LoggingEventHandler()
event_handler = cFileSystemEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()