From 60cef8c804f4cbe94e43a70c620d69fa670283b4 Mon Sep 17 00:00:00 2001 From: Sumate Kongpui Date: Wed, 22 Aug 2018 19:07:13 +0700 Subject: [PATCH] update timeout --- ais-structure/src/modules/helper/connection.js | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 89 insertions(+), 25 deletions(-) diff --git a/ais-structure/src/modules/helper/connection.js b/ais-structure/src/modules/helper/connection.js index 0bb109b..0b128ad 100644 --- a/ais-structure/src/modules/helper/connection.js +++ b/ais-structure/src/modules/helper/connection.js @@ -10,17 +10,36 @@ var connection = []; connection.requestSoapToSACF = async function (soap,cmd,myMethod) { + var service = cfg.service.SACF; + var retry = service[myMethod+"_"+cmd+"_Retry"]; + var params = { - url : cfg.service.SACF[myMethod+"_"+cmd+"_URL"], + url : service[myMethod+"_"+cmd+"_URL"], body : messageSOAP.objectToSOAP(soap,cmd), method : myMethod, timeout : cfg.service.SACF[myMethod+"_"+cmd+"_Timeout"]*1000 } - stats.sendSACFRequest(cfg.service.SACF.Name,cmd) - log.logDetail.addOutput(cfg.service.SACF.Name,cmd,"Request",params,soap); + if(!retry) + retry = cfg.Default_Retry; + + var objectData = { + maxRetry : retry, + curRetry : 1 + } + + var funStats = function(){ + stats.sendSACFRequest(service.Name,cmd); + log.logDetail.addOutput(service.Name,cmd,"Request",params,soap); + }; + + var funStats = { + start : funStats, + error : function(response){log.addErrorSummary(service.Name,cmd,response);} + }; + - var result = await asyncRequest(params,cmd,cfg.service.SACF.Name); + var result = await asyncRequest(params,objectData,funStats); if(result.err) { @@ -48,7 +67,16 @@ connection.requestSoapToSACF = async function (soap,cmd,myMethod) { connection.requestJsonToD01 = async function (obj,cmd,myMethod) { - var service = cfg.service.D01; + var service = cfg.service.D01; + var retry = service[myMethod+"_"+cmd+"_Retry"]; + if(!retry) + retry = cfg.Default_Retry; + + var objectData = { + maxRetry : retry, + curRetry : 1 + } + // JSON.stringify(json) var params = { url : service[myMethod+"_"+cmd+"_URL"], @@ -57,13 +85,23 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { timeout : service[myMethod+"_"+cmd+"_Timeout"]*1000 } - log.logDetail.addOutput(service.Name,cmd,"Request",params,params.body); + var funStats = function(){ + stats.sendRestRequest(service.Name,myMethod,cmd); + log.logDetail.addOutput(service.Name,cmd,"Request",params,obj); + }; + + var funStats = { + start : funStats, + error : function(response){log.addErrorSummary(service.Name,cmd,response);} + }; + + var result = {}; result.response = {}; result.response.resultData = []; - stats.sendRestRequest(service.Name,myMethod,cmd); + if(params.method == "GET") { @@ -76,7 +114,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { for(var i=0;i { request(params, function (error, response, body) { if (error) { + + if( objectData.maxRetry == objectData.curRetry-1) + { + resolve({ + 'body' : body, + 'err' : error + }); + }else + { + var errRes = {}; + if(error.code == 'ETIMEDOUT'){ + errRes.resultCode = "50003"; + errRes.resultDescription = "Timeout"; + } else if(error.code == 'ECONNREFUSED'){ + errRes.resultCode = "50002"; + errRes.resultDescription = "Reject"; + } else { + errRes.resultCode = "50000"; + errRes.resultDescription = "System error"; + } + + // console.log("retry "+objectData.curRetry); + funStat.error(errRes); + objectData.curRetry++; + resolve(asyncRequest(params,objectData,funStat)); + } - // console.log("End : "+new Date().toISOString()); - console.log(error.code); - resolve({ - 'body' : body, - 'err' : error - }); + + } else { // stats.receiveResponse(node,cmd,"Success"); -- libgit2 0.21.2