我有一個node.js腳本不斷地請求頁面,有點像cron作業。Node.js http請求內存和cpu豬
但是,幾分鐘後,Node開始使用大量的CPU(高達70%)和內存(高達200MB)。
我的腳本有什麼問題?
function cron(path)
{
var http = require('http');
var site = http.createClient(443, 'www.website.com', true);
var request = site.request('GET', path, {'host': 'www.website.com'});
request.end();
request.on('response', function (response) {
setTimeout(function(){cron(path)},15000);
});
}
cron('/path/to/page');
太好了,我正在測試新的腳本。我不明白爲什麼在request.on()回調中使用「once」變量,每個請求只能有一個響應? – koen 2011-04-15 13:26:16
@koen以確保它只被調用一次。您是否想在獲得_a_響應時創建新的'cron'作業,或者是否希望爲從請求中獲得的_every_響應創建新的'cron'作業?請注意,我的一些「優化」可能由V8解釋器爲您完成。我不知道V8是否知道什麼時候釋放內存,當不需要時將變量設置爲'null'基本上標記該內存以供GC清除。 – Raynos 2011-04-15 13:28:19
我想在舊請求完成時創建一個新的響應。有時候,頁面加載需要更長的時間,我只需要一個cron,這就是爲什麼我使用request.on()回調。我只是檢查並且頁面只返回一個響應。 – koen 2011-04-15 13:36:09