[英]Node.js client request hangs
我有一個node.js進程,它使用大量客戶端請求從網站提取信息。 我正在使用請求包( https://www.npmjs.com/package/request ),因為它說:“它支持HTTPS並默認遵循重定向。”
我的問題是,在一段時間后,請求開始掛起。 我無法確定這是否是因為服務器正在返回無限數據流,或者是否正在進行其他操作。 我設置了超時,但在一些成功的請求之后,其中一些最終會卡住並且永遠不會完成。
var options = { url: 'some url', timeout: 60000 };
request(options, function (err, response, body) {
// process
});
我的問題是,我可以在使用此庫收到一定數量的數據后關閉連接嗎?我可以阻止請求掛起嗎? 我是否需要使用http / https庫並自行處理重定向和協議切換以獲得我需要的控制? 如果我這樣做,是否有標准化的做法?
編輯:此外,如果我停止進程並重新啟動它,他們會選擇正確的備份並開始工作,所以我認為它與服務器或代碼運行的機器無關。
請注意,在request(options, callback)
,當請求完成並且無法中斷請求時,將觸發回調。
你應該聽取data
事件:
var request = require('request')
var stream = request(options);
var len = 0
stream.on('data', function(data) {
// TODO process your data here
// break stream if len > 1000
len += Buffer.byteLength(data)
if (len > 1000) {
stream.abort()
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.