Commit 60cef8c804f4cbe94e43a70c620d69fa670283b4

Authored by sumatek
1 parent 3d36a443
Exists in master and in 1 other branch dev

update timeout

Showing 1 changed file with 89 additions and 25 deletions   Show diff stats
ais-structure/src/modules/helper/connection.js
... ... @@ -10,17 +10,36 @@ var connection = [];
10 10  
11 11 connection.requestSoapToSACF = async function (soap,cmd,myMethod) {
12 12  
  13 + var service = cfg.service.SACF;
  14 + var retry = service[myMethod+"_"+cmd+"_Retry"];
  15 +
13 16 var params = {
14   - url : cfg.service.SACF[myMethod+"_"+cmd+"_URL"],
  17 + url : service[myMethod+"_"+cmd+"_URL"],
15 18 body : messageSOAP.objectToSOAP(soap,cmd),
16 19 method : myMethod,
17 20 timeout : cfg.service.SACF[myMethod+"_"+cmd+"_Timeout"]*1000
18 21 }
19 22  
20   - stats.sendSACFRequest(cfg.service.SACF.Name,cmd)
21   - log.logDetail.addOutput(cfg.service.SACF.Name,cmd,"Request",params,soap);
  23 + if(!retry)
  24 + retry = cfg.Default_Retry;
  25 +
  26 + var objectData = {
  27 + maxRetry : retry,
  28 + curRetry : 1
  29 + }
  30 +
  31 + var funStats = function(){
  32 + stats.sendSACFRequest(service.Name,cmd);
  33 + log.logDetail.addOutput(service.Name,cmd,"Request",params,soap);
  34 + };
  35 +
  36 + var funStats = {
  37 + start : funStats,
  38 + error : function(response){log.addErrorSummary(service.Name,cmd,response);}
  39 + };
  40 +
22 41  
23   - var result = await asyncRequest(params,cmd,cfg.service.SACF.Name);
  42 + var result = await asyncRequest(params,objectData,funStats);
24 43  
25 44 if(result.err)
26 45 {
... ... @@ -48,7 +67,16 @@ connection.requestSoapToSACF = async function (soap,cmd,myMethod) {
48 67  
49 68 connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
50 69  
51   - var service = cfg.service.D01;
  70 + var service = cfg.service.D01;
  71 + var retry = service[myMethod+"_"+cmd+"_Retry"];
  72 + if(!retry)
  73 + retry = cfg.Default_Retry;
  74 +
  75 + var objectData = {
  76 + maxRetry : retry,
  77 + curRetry : 1
  78 + }
  79 +
52 80 // JSON.stringify(json)
53 81 var params = {
54 82 url : service[myMethod+"_"+cmd+"_URL"],
... ... @@ -57,13 +85,23 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
57 85 timeout : service[myMethod+"_"+cmd+"_Timeout"]*1000
58 86 }
59 87  
60   - log.logDetail.addOutput(service.Name,cmd,"Request",params,params.body);
  88 + var funStats = function(){
  89 + stats.sendRestRequest(service.Name,myMethod,cmd);
  90 + log.logDetail.addOutput(service.Name,cmd,"Request",params,obj);
  91 + };
  92 +
  93 + var funStats = {
  94 + start : funStats,
  95 + error : function(response){log.addErrorSummary(service.Name,cmd,response);}
  96 + };
  97 +
  98 +
61 99  
62 100 var result = {};
63 101 result.response = {};
64 102 result.response.resultData = [];
65 103  
66   - stats.sendRestRequest(service.Name,myMethod,cmd);
  104 +
67 105  
68 106 if(params.method == "GET")
69 107 {
... ... @@ -76,7 +114,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
76 114 for(var i=0;i<genUrl.length;i++)
77 115 multiSend.push({url:genUrl[i],method:params.method});
78 116  
79   - var parallelRes = await parallelRequest(multiSend,cmd,cfg.service.D01.Name);
  117 + var parallelRes = await parallelRequest(multiSend,objectData,funStats);
80 118  
81 119 var dataRes = {};
82 120 for(var i=0;i<multiSend.length;i++)
... ... @@ -122,7 +160,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
122 160 params.url = genUrl[0];
123 161 delete params.body;
124 162  
125   - var resultRes = await asyncRequest(params,cmd,service.Name);
  163 + var resultRes = await asyncRequest(params,objectData,funStats);
126 164  
127 165 // console.log(result);
128 166 if(resultRes.response)
... ... @@ -138,9 +176,10 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
138 176 {
139 177 params.body = JSON.stringify(params.body);
140 178  
141   - var resultRes = await asyncRequest(params,cmd,service.Name);
  179 + var resultRes = await asyncRequest(params,objectData,funStats);
142 180  
143   - result.response = JSON.parse(resultRes.body);
  181 + if(resultRes.response)
  182 + result.response = JSON.parse(resultRes.body);
144 183  
145 184 }
146 185  
... ... @@ -193,40 +232,65 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
193 232 };
194 233  
195 234  
196   -async function parallelRequest(multiParams,cmd,node)
  235 +async function parallelRequest(multiParams,objectData,funStat)
197 236 {
198 237  
199 238 var promises = [];
200 239  
201 240 for(var i=0;i<multiParams.length;i++)
202   - promises.push(asyncRequest (multiParams[i],cmd,node));
  241 + promises.push(asyncRequest (multiParams[i],objectData,funStat));
203 242  
204 243 var res = await Promise.all(promises);
205   - for(var i=0;i<res.length;i++)
206   - {
207   - if(!res[i].err)
208   - stats.receiveResponse(node,cmd,"Success");
  244 + // for(var i=0;i<res.length;i++)
  245 + // {
  246 + // if(!res[i].err)
  247 + // stats.receiveResponse(node,cmd,"Success");
209 248  
210   - }
  249 + // }
211 250  
212 251  
213 252 return res;
214 253 }
215 254  
216   -function asyncRequest (params = {},cmd,node) {
  255 +function asyncRequest (params = {},objectData,funStat) {
  256 +
  257 + // console.log(objectData);
  258 + funStat.start();
217 259  
218 260 // console.log("Start : "+new Date().toISOString());
219 261 return new Promise((resolve, reject) => {
220 262 request(params, function (error, response, body) {
221 263  
222 264 if (error) {
  265 +
  266 + if( objectData.maxRetry == objectData.curRetry-1)
  267 + {
  268 + resolve({
  269 + 'body' : body,
  270 + 'err' : error
  271 + });
  272 + }else
  273 + {
  274 + var errRes = {};
  275 + if(error.code == 'ETIMEDOUT'){
  276 + errRes.resultCode = "50003";
  277 + errRes.resultDescription = "Timeout";
  278 + } else if(error.code == 'ECONNREFUSED'){
  279 + errRes.resultCode = "50002";
  280 + errRes.resultDescription = "Reject";
  281 + } else {
  282 + errRes.resultCode = "50000";
  283 + errRes.resultDescription = "System error";
  284 + }
  285 +
  286 + // console.log("retry "+objectData.curRetry);
  287 + funStat.error(errRes);
  288 + objectData.curRetry++;
  289 + resolve(asyncRequest(params,objectData,funStat));
  290 + }
223 291  
224   - // console.log("End : "+new Date().toISOString());
225   - console.log(error.code);
226   - resolve({
227   - 'body' : body,
228   - 'err' : error
229   - });
  292 +
  293 +
230 294 } else {
231 295  
232 296 // stats.receiveResponse(node,cmd,"Success");
... ...