Commit a1f044d9a798ad21389d0eb455ccc6cefe8ca12b

Authored by sumatek
1 parent 9354f8c5
Exists in master and in 1 other branch dev

update parallel

ais-structure/src/config/config.js
... ... @@ -46,7 +46,8 @@ var config = {
46 46 },
47 47 http_req_timeout: 120,
48 48 session: 30, //minutes
49   - Default_Timeout: 10
  49 + Default_Timeout: 10,
  50 + Uri_length: 1000
50 51 }
51 52 };
52 53  
... ...
ais-structure/src/modules/customer/customer.ctrl.js
... ... @@ -19,8 +19,8 @@ exports.customer = async function (req, res, next) {
19 19 var objectData = req.query;
20 20 const result = await connection.requestJsonToD01(objectData,sendCmd,"GET");
21 21 if(typeof result.err === 'undefined'){
22   - // console.log(result.response.body);
23   - var resultObj = JSON.parse(result.response.body);
  22 + // console.log(result.response);
  23 + var resultObj = result.response;
24 24 if(resultObj.resultCode == "20000")
25 25 {
26 26 if(resultObj.resultData && resultObj.resultData.length>0)
... ...
ais-structure/src/modules/helper/connection.js
... ... @@ -26,36 +26,141 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) {
26 26  
27 27 if(params.method == "GET")
28 28 {
29   - params.url = getUrl(params);
30   - delete params.body;
31   - }else if(params.method == "POST")
32   - {
33   - params.body = JSON.stringify(params.body);
34   - }
  29 + var genUrl = getUrl(params);
  30 + genUrl.push(genUrl[0]);
  31 + if(genUrl.length > 1)
  32 + {
  33 + // console.log("multi Send");
  34 + var multiSend = [];
  35 + var loopData = {};
  36 + for(var i=0;i<genUrl.length;i++)
  37 + {
  38 + loopData.url = genUrl[i];
  39 + loopData.method = params.method;
  40 + multiSend.push(loopData);
35 41  
36   - var result = await asyncRequest(params,cmd,cfg.service.D01.Name);
  42 + // console.log("Url["+i+"] : "+loopData.url);
  43 + }
37 44  
  45 + parallelRequest(multiSend,cmd,cfg.service.D01.Name);
38 46  
39   - // console.log(result);
40   - if(result.response)
41   - {
42   - var data = JSON.parse(result.response.body);
  47 + var dataRes = {};
  48 + for(var i=0;i<multiSend.length;i++)
  49 + {
  50 + // 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);
  54 +
  55 + if(loopRes.response)
  56 + {
  57 + var data = JSON.parse(loopRes.response.body);
  58 + dataRes[i] = {};
  59 +
  60 + if(!data.resultCode)
  61 + dataRes[i].err = "Miss resultCode";
  62 +
  63 + if(!data.resultDescription)
  64 + dataRes[i].err = "Miss resultDescription"
  65 +
  66 +
  67 + dataRes[i].data = data.resultData;
  68 +
  69 + }
  70 +
  71 + }
  72 +
  73 + var result = {};
  74 + result.response = {};
  75 + result.response.resultData = [];
  76 +
  77 + for (var i = 0; i < multiSend.length; i++) {
  78 +
  79 + result.response.resultData = result.response.resultData.concat(dataRes[i].data);
  80 + if(dataRes[i].err)
  81 + result.err = dataRes[i].err;
  82 + }
43 83  
44   - if(!data.resultCode)
45   - result.err = "Miss resultCode";
  84 + if(!result.err)
  85 + {
  86 + result.response.resultCode = "20000";
  87 + result.response.developerMessage = "Success";
  88 + }
  89 +
  90 +
  91 + }else
  92 + {
  93 + // console.log("single Send");
  94 + params.url = genUrl[0];
  95 + delete params.body;
  96 +
  97 + var result = await asyncRequest(params,cmd,cfg.service.D01.Name);
  98 +
  99 + // console.log(result);
  100 + if(result.response)
  101 + {
  102 + var data = JSON.parse(result.response.body);
  103 + result.response = data;
  104 +
  105 + if(!data.resultCode)
  106 + result.err = "Miss resultCode";
  107 +
  108 + if(!data.resultDescription)
  109 + result.err = "Miss resultDescription";
  110 + }
  111 + }
46 112  
47   - if(!data.resultDescription)
48   - result.err = "Miss resultDescription"
  113 +
  114 + }else if(params.method == "POST")
  115 + {
  116 + params.body = JSON.stringify(params.body);
49 117 }
  118 +
50 119  
  120 + delete result.body;
  121 + // console.log(result);
51 122 return result;
52 123  
53 124  
54 125 };
55 126  
  127 +
  128 +function parallelRequest(multiParams,cmd,node)
  129 +{
  130 + for(var i=0;i<multiParams.length;i++)
  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 + // });
  153 +
  154 + // console.log(response);
  155 + }
  156 + });
  157 + }
  158 +}
  159 +
56 160 function asyncRequest (params = {},cmd,node) {
57 161  
58 162 // console.log(params);
  163 + console.log("Start : "+new Date().toISOString());
59 164 return new Promise((resolve, reject) => {
60 165 request(params, function (error, response, body) {
61 166  
... ... @@ -63,13 +168,15 @@ function asyncRequest (params = {},cmd,node) {
63 168  
64 169 if (error) {
65 170 // console.log("error");
  171 + console.log("Start : "+new Date());
66 172 stats.reciveResponse(node,cmd,"Error");
67 173 resolve({
68 174 'body' : body,
69 175 'err' : error
70 176 });
71 177 } else {
72   - // console.log("normal");
  178 + // console.log("normal");
  179 + console.log("End : "+new Date().toISOString());
73 180 // stats.reciveResponse(node,cmd,"Success");
74 181 resolve({
75 182 'body' : body,
... ... @@ -82,6 +189,7 @@ function asyncRequest (params = {},cmd,node) {
82 189  
83 190 function getUrl(params)
84 191 {
  192 + var returnData = [];
85 193 var url = params.url;
86 194 var fields = "";
87 195 var filter = "";
... ... @@ -104,13 +212,37 @@ function getUrl(params)
104 212 }
105 213  
106 214 if(filter != "")
107   - filter = "?filter=(&"+filter+")";
  215 + {
  216 + var maxFilterLength = cfg.Uri_length - url.length - fields.length + "?filter=(&)".length;
  217 +
  218 + if(maxFilterLength > filter.length)
  219 + {
  220 + returnData.push(url+"?filter=(&"+filter+")"+fields);
  221 +
  222 + }else
  223 + {
  224 + // while(maxFilterLength < filter.length)
  225 + // {
  226 +
  227 + // returnData.push(url+"?filter=(&"+filter+")"+fields);
  228 + // }
  229 +
  230 + }
  231 +
  232 + }
  233 +
  234 +
  235 +
  236 +
  237 +
  238 +
  239 +
108 240  
109 241 // console.log(url);
110 242 // console.log(filter);
111 243 // console.log(fields);
112 244  
113   - return url+filter+fields;
  245 + return returnData;
114 246 }
115 247  
116 248 function getFields(fields,first)
... ...
ais-structure/src/modules/helper/responseMsg.js
... ... @@ -32,7 +32,7 @@ responseMsg.success = function (req,cmd,data){
32 32 resultCode : "20000",
33 33 developerMessage : "Success",
34 34 resultData : data.resultData,
35   - rowCount : data.rowCount
  35 + rowCount : data.resultData.length
36 36 };
37 37  
38 38 stats.sendResponse(req.method,cmd,"Success");
... ...