Node.js fs.watchFile持久监视机制?

Som*_*ody 14 node.js

有人可以解释持久手表的工作原理吗

如果正在观看文件的更改,它是否会在PC上占用一些资源?

谢谢 ;)

Ivo*_*zel 10

fs.watchFile创建一个StatWatcher然后stat对正在观看的文件执行a .在低级别(除了执行明显的统计调用)之前发生的具体情况取决于编译节点的事件循环实现.

所以是的,它占用了一点CPU,但是除了基础文件系统本身会发出文件更改事件之外,除了轮询之外你不能做任何其他事情.

请参阅:
https://github.com/ry/node/blob/v0.3.2/lib/fs.js#L472
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.h #L39
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.cc#L78

有关参数的更多信息

Interval是无法使用inotify的相关性 - 它确定轮询更新的时间.持久性与程序应该如何操作只有watchFile运行时有关.默认是退出.

据我所知,需要3-5秒才能注意到更改(使用默认设置),我可以加快速度吗?

在linux上它使用inotify - 这更快

观看数百个文件有多重?

重.它并不意味着这一点.

来源:由Ryan Dahl 在Node.js Google Group上发布

总结
如果你在Linux上,该interval选项对所有人都没有影响.
如果你没有设置persistent除文件观察器之外的事件循环中没有其他内容,程序将退出.