Commit 787e24ad01f355ad83fb7f5c57c6d050c634b642

Authored by sumatek
1 parent 113ef081
Exists in master and in 1 other branch dev

update async function parallelRequest(multiParams,cmd,node)

Showing 1 changed file with 25 additions and 46 deletions   Show diff stats
ais-structure/src/modules/helper/connection.js
... ... @@ -3,8 +3,10 @@ var cfg = require('../../config/config.js').get(env);
3 3 var stats = require('../helper/stats.js');
4 4 var request = require('request');
5 5 var messageSOAP = require('../helper/messageSOAP.js');
  6 +
6 7 var connection = [];
7 8  
  9 +
8 10 connection.requestSoapToSPW = async function (soap,cmd,myMethod) {
9 11  
10 12 var params = {
... ... @@ -27,30 +29,21 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
27 29 if(params.method == "GET")
28 30 {
29 31 var genUrl = getUrl(params);
30   - genUrl.push(genUrl[0]);
  32 + genUrl.push(genUrl[0].replace("8080","8081"));
31 33 if(genUrl.length > 1)
32 34 {
33 35 // console.log("multi Send");
34 36 var multiSend = [];
35   - var loopData = {};
36 37 for(var i=0;i<genUrl.length;i++)
37   - {
38   - loopData.url = genUrl[i];
39   - loopData.method = params.method;
40   - multiSend.push(loopData);
41   -
42   - // console.log("Url["+i+"] : "+loopData.url);
43   - }
44   -
45   - parallelRequest(multiSend,cmd,cfg.service.D01.Name);
  38 + multiSend.push({url:genUrl[i],method:params.method});
  39 +
  40 + var parallelRes = await parallelRequest(multiSend,cmd,cfg.service.D01.Name);
46 41  
47 42 var dataRes = {};
48 43 for(var i=0;i<multiSend.length;i++)
49 44 {
50 45 // console.log("start loop");
51   - // var loopRes = await asyncRequest(multiSend[i],cmd,cfg.service.D01.Name);
52   -
53   - // var loopRes = parallelRequest(multiSend[i],cmd,cfg.service.D01.Name);
  46 + var loopRes = parallelRes[i];
54 47  
55 48 if(loopRes.response)
56 49 {
... ... @@ -125,58 +118,44 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
125 118 };
126 119  
127 120  
128   -function parallelRequest(multiParams,cmd,node)
  121 +async function parallelRequest(multiParams,cmd,node)
129 122 {
  123 +
  124 + var promises = [];
  125 +
130 126 for(var i=0;i<multiParams.length;i++)
  127 + promises.push(asyncRequest (multiParams[i],cmd,node));
  128 +
  129 + var res = await Promise.all(promises);
  130 + for(var i=0;i<res.length;i++)
131 131 {
132   - stats.sendRequest(node,cmd);
133   - console.log("Start "+i+" Url : "+multiParams[i].url);
134   - console.log("Start "+i+"Time : "+new Date().toISOString());
135   - request(multiParams[i], function (error, response, body) {
136   - if (error) {
137   - console.log("error");
138   - console.log("End : "+new Date().toISOString());
139   - stats.reciveResponse(node,cmd,"Error");
140   - // resolve({
141   - // 'body' : body,
142   - // 'err' : error
143   - // });
144   - // console.log(error);
145   - } else {
146   - console.log("normal");
147   - console.log("End "+i+" : "+new Date().toISOString());
148   - // stats.reciveResponse(node,cmd,"Success");
149   - // resolve({
150   - // 'body' : body,
151   - // 'response' : response
152   - // });
  132 + if(!res[i].err)
  133 + stats.reciveResponse(node,cmd,"Success");
153 134  
154   - // console.log(response);
155   - }
156   - });
157   - }
  135 + }
  136 +
  137 +
  138 + return res;
158 139 }
159 140  
160 141 function asyncRequest (params = {},cmd,node) {
161 142  
162   - // console.log(params);
163   - console.log("Start : "+new Date().toISOString());
  143 +
  144 + // console.log("Start : "+new Date().toISOString());
164 145 return new Promise((resolve, reject) => {
165 146 request(params, function (error, response, body) {
166 147  
167 148 stats.sendRequest(node,cmd);
168 149  
169 150 if (error) {
170   - // console.log("error");
171   - console.log("Start : "+new Date());
  151 +
172 152 stats.reciveResponse(node,cmd,"Error");
173 153 resolve({
174 154 'body' : body,
175 155 'err' : error
176 156 });
177 157 } else {
178   - // console.log("normal");
179   - console.log("End : "+new Date().toISOString());
  158 +
180 159 // stats.reciveResponse(node,cmd,"Success");
181 160 resolve({
182 161 'body' : body,
... ...