2016-05-04 4 views
1

私はExpressJSフレームワークを使用しており、jQueryを使用してサーバーにajaxリクエストを送信しています。このajaxリクエストは、多数のアイテムを1つずつサーバー上のAPIに要求を送信し、十分に時間がかかります(100アイテムで約10分)。AJAXはNodeJSで時間のかかるリクエストを複数回リトライすることを要求します

問題は、サーバーがAPIと通信している間に、たとえば30個のアイテムを処理しているときに、ブラウザは同じAjax要求(サーバーからの応答を待機しています)を再度送信することです。これにより、複数のajax要求がサーバー上で処理されます。これに対する解決策は何ですか?

+0

あなたが求めていることは明確ではありません。もしあなたがフォークが試してみてほしいと思ったら、あなたのコードを見せてください。 – Paul

+0

@Paulコードはかなり大きいです。問題は非常に一般的です。私はajaxリクエストを送る。サーバーは要求を完了するまでに多くの時間を要します。しかし、ただ応答を待つのではなく、ブラウザはある時間後にajax要求を再度送信します。 2分後。今、サーバーは2つの要求を同時に処理しています。 –

+0

それでは、幸いです。 – Paul

答えて

0

/bin/wwwserver.timeoutを設定して問題を解決しました。私が言及したように、私はNodeJSのExpressフレームワークを使用しています。server.timeoutを30分と設定した場合、ブラウザは30分間ajaxレスポンスを待機し、新しいリクエストを送信しません。ここで私のwwwファイルにタイムアウト値を追加しました:

var server = app.listen(app.get('port'), function() { 
    debug('Express server listening on port ' + server.address().port); 
    console.log('Express server listening on port ' + server.address().port + ' in '+process.env.NODE_ENV+' mode.'); 
}); 
server.timeout = 30*60*1000; // for 30 minutes 
関連する問題