看门狗:如何在与目录的连接丢失或目录被删除时重新处理/监视目录

问题描述

我正在尝试监视在共享网络驱动器中创建的文件。似乎工作正常 除了最近它在网络连接丢失(然后重新连接)时停止监视事件。 没有异常被提出

即使有时连接丢失,有没有办法始终检查声明的目录?

以下是代码片段:

class Handler(FileSystemEventHandler):
    def on_created(self,event):
       # log created files


class NetworkWatchDog(object):
def __init__(self,paths):
    self.observer = observers.Observer()
    self.observers = []
    self.paths = paths

    self.event_handler = Handler()

def run(self):
    for path in self.paths:
        self.observer.schedule(self.event_handler,path,recursive=True)
        self.observers.append(self.observer)

    self.observer.start()

    try:
        while True:
            time.sleep(1)
    except Exception as err:
        print(err)
        for observer in self.observers:
            observer.unschedule_all()
            observer.stop()
            logging.error(err,exc_info=True)

    for observer in self.observers:
        observer.join()



if __name__ == '__main__':
    watchdog = NetworkWatchDog(list_of_monitored_paths)
    watchdog.run()

同样,如果路径/目录被监视,然后删除并再次创建,这也是行为。它不再是被监控的“路径”的一部分

希望得到一些反馈,因为我认为没有类似的问题有类似的问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)