2011-05-04 68 views
8

我目前在nodeJS中使用脚本来监控一个目录(和它的子目录),并且一旦文件被放置在那里,就执行一些功能。实际上,这将是一个FTP,用户上传文件,将其处理,然后删除。监控目录的变化 - 潜在的高内存

很显然,我已经看到脚本的CPU使用量有很高的数量,因为它遍历目录,等待文件可见。但令我担心的是脚本运行时间越长,内存使用率越高(它只是呈指数级增长)。是否有一些轻量级的方法来监控目录中的更改?

谢谢!

编辑︰我目前使用watch-tree这是伟大的,但仍有增加内存的问题。

+3

你的识别是第三方代码中的内存泄漏。尝试使用'supervisor',不太可能发生内存泄漏。 (它是由艾萨克斯制作的!) – Raynos 2011-05-04 12:01:39

+0

听起来很不错!如何在添加文件时监控目录(和子目录)?节点监控器似乎只监视文件的变化(例如server.js) – crawf 2011-05-04 12:59:17

+0

它也监视所有'.js'文件的任何子目录。如果你尝试'supervisor --help',它应该有一个'-js'选项用于更详细的控制。 – Raynos 2011-05-04 13:07:21

回答

3

听起来就像你想围绕FAM或inotify包装。也许像node-inotify-plusplus会为你工作。

+0

谢谢@rjp,我一直在寻找这样的东西。任何解决方案的主要问题是监视过程将占用的内存级别,因为此系统需要一次在线8小时。正在通知一个好的方法吗?从我研究的内容来看,它是操作系统的一部分,所以它的内存效率会很高...... – crawf 2011-06-10 06:37:16

+1

FreeBSD/OS X用户需要使用kqueue解决方案,因为inotify/epoll在这些平台上不存在。 – jarjar 2011-06-21 22:34:56

+0

您可以使用node-inotify-plusplus在目录中的文件被修改时打印文件的名称? – 2012-12-04 02:30:15