NodeJSは、デフォルトのタイムアウト(2分)以内に応答が得られない場合、バックエンドAPI呼び出しを再試行します。これにより、POST/PUT/DELETE API呼び出しの問題が発生し、応答時間(> 2分)が長くなります。リクエストは、ユーザからの1回のリクエストに対して、複数回Nodejsからバックエンドに行きます。応答時間がnodeJSのデフォルト時間よりも長くなると、NodeJSはPOST/PUT/DELETE APIを再試行します
私の応答は毎回変わる可能性があるので、デフォルトのタイムアウトを増やしたくありません。
nodeJs/expressJSに設定がある場合は教えてください。そうすれば、nodeJSの再試行を完全に停止したり、POST/PUT/DELETE APIのみの設定をカスタマイズできます。私は私の要求を送信する方法の
例:事前に助けを
let express = require('express');
let router = express.Router();
let async = require('async');
let expressListRoutes = require('express-list-routes');
async.parallel([
function() {
//url: resource/add/
router.post('/add', function (req, res) {
let uiModel = req.body;
let outputJson = Parser.parse(uiModel, 'CREATE');
let requestPromiseModel = {
uri: `${RESOURCES}/${uiModel.resourcePluginId}`,
method: HttpMethod.POST,
json: true,
body: outputJson,
headers: {
'Accept': MIMETypes.APPLICATION_JSON,
'Authorization': MIMETypes.TOKEN_TYPE + req.token
},
resolveWithFullResponse: true
};
rp(requestPromiseModel).then(function (results) {
res.send(results);
}).catch(function (err) {
log.error(`Error: Create Resource Action: ${err}`);
res.send(err.response);
});
});
}
]);
expressListRoutes({prefix: '/resource'}, "API:", router);
module.exports = router;
おかげで:)
リクエストをバックエンドに送信するために使用しているコードの例を投稿できますか? – Matt
私の例では、nodejsからBEへのリクエストをどのように送っていますか? –