2016-09-27 26 views
7

以下は、1分以上かかるいくつかのデータを取得するためのnode.js呼び出しです。ここでは、1分(60秒)でタイムアウトになります。私は、待ち時間のコンソールログも入れました。しかし、私は120秒間のタイムアウトを設定しましたが、それは反映されていません。私はデフォルトレベルのnodejsサーバーのタイムアウトが120秒であることを知っていますが、この呼び出しのためにこのrequestモジュールからタイムアウト(60秒)を取得します。これについてのあなたの洞察を提供してください。 timeoutエントリまでスクロールrequest options docsからNPM要求モジュール(RESTクライアント)のデフォルトのタイムアウトは何ですか?

var options = { 
    method: 'post', 
    url:url, 
    timeout: 120000, 
    json: true, 
    headers: { 
    "Content-Type": "application/json", 
    "X-Authorization": "abc", 
    "Accept-Encoding":"gzip" 
    } 
} 
var startTime = new Date(); 
request(options, function(e, r, body) { 
    var endTime = new Date(); 
    var latencyTime = endTime - startTime; 
    console.log("Ended. latencyTime:"+latencyTime/1000); 
    res.status(200).send(body); 

}); 

答えて

5

、:

timeout - Integer containing the number of milliseconds to wait for a server to send response headers (and start the response body) before aborting the request. Note that if the underlying TCP connection cannot be established, the OS-wide TCP connection timeout will overrule the timeout option (the default in Linux can be anywhere from 20-120 seconds).

注基盤となるTCP接続が確立できない場合、最後の部分」、OS全体のTCP接続タイムアウトは、タイムアウトを却下しますオプション"。

Timeoutsのセクションもあります。それに基づいて、そして、あなたのコードサンプル、我々はこれが本当であるならば、あなたはOSの設定を変更する(これは、の範囲を超えている可能かつ許容可能であるかどうかを判断する必要があります

request(options, function(e, r, body) { 
    if (e.code === 'ETIMEDOUT' && e.connect === true){ 
    // when there's a timeout and connect is true, we're meeting the 
    // conditions described for the timeout option where the OS governs 
    console.log('bummer'); 
    } 
}); 

のような要求のサンプルを変更することができますこの回答とそのような質問は、Server Faultの方が良いでしょう)。

+0

こんにちはMatthew、このエラーが発生しています。 {[エラー:ECONNRESETを読む]コード: 'ECONNRESET'、errno: 'ECONNRESET'、syscall: 'read'}なぜ私はこれを得ているすべての考え? RESTクライアント(POSTMAN/etc)を通して、私は1秒以内に応答を得ることができました。しかし、このノードモジュールには時間がかかります。そして私がcat/proc/sys/net/ipv4/tcp_syn_retriesを実行したとき 私は6という値を得ました。 –

+0

最初に、 'ECONNRESET'がエラーであれば、タイムアウトは問題ではありません。別の問題があり、この他のスタックオーバーフローの答えが表示されます:http://stackoverflow.com/a/17637900/2247344 –

関連する問題