簡體   English   中英

Node.js客戶端請求掛起

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM