如何强力重启文件监视器?

时间:2016-01-08 12:27:08

标签: node.js process backup restore file-watcher

我正在监控500GB的大型目录 - 1TB,并且文件监视服务填满了我的数据库。在初始扫描期间,启动扫描和本机监视事件(添加文件,添加目录),甚至不进行任何后处理(元数据,缩略图,数据库检查)可能需要2-3个小时完成

当观察者重新启动(例如崩溃或更新)时,必须重做初始扫描,在此期间我有两个选择:

  1. 全面扫描 - 再次处理所有内容

    • 观察者将再次查看所有文件数据并将其与数据库条目进行比较。
    • 如果发现任何不同或新的数据库,则会更新数据库。
    • 速度:非常慢(约5-6小时)
    • 丢失数据:无,最强健
    1. 无意识扫描 - 忽略初始扫描事件

      • 观察者会正确初始化观看
      • 但无法在重新启动开始和初始扫描完成之间注册任何新文件或更改
      • 速度:全扫描的大约一半时间(约2-3小时)
      • 丢失数据:很多,不太可靠(除非夜间没有变化)
    2. 此外,我考虑了第三种选择,但不确定它是否可行:

      1. 备份和恢复

        • 在运行期间,使用第二个进程备份观察者的数据和负责观看的任何对象
        • 重新启动时,不是重新运行初始扫描,而是使用备份过程中存储的数据恢复观看
        • 然后继续正常工作
        • 速度:重启观察程序进程需要几秒钟
        • 丢失数据:可能没有,除非在重启的几秒钟内发生数据变化(对我来说足够好)
      2. 我想知道您是否曾尝试过观察服务的备份还原?或者你有什么想法吗?

        (在我的情况下,观察者使用node.js,chokidarfs.watchFSWatcher和一些native C fs_event_wrap

0 个答案:

没有答案