2011-05-04 73 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