Commit 60cef8c804f4cbe94e43a70c620d69fa670283b4
1 parent
3d36a443
Exists in
master
and in
1 other branch
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"); | ... | ... |