繁体   English   中英

并行发送多个请求

[英]send multiple requests in parallel

我必须在两个数据库(Mongo和Oracle)之间架起一座桥梁(脚本)。

我在三个不同集合中的MONGO数据库上运行三个查找查询。

 Collection 1 = [{
  name: 'Toto',
  from: 'Momo',
  note: 5,
  cat: 'noCategori'
 }]

 Collection 2 = [{
  city: 'london',
  country: 'UK'
 }]
 ...etc

我从我在该列表上进行过处理的每个集合中检索文档列表(例如:平均值)。

RowToSend = {
  name: 'Toto',
  note: 17, // average all document
  city: 'london'
}

我与Oracle建立了连接,并保留了这一行。

我想并行运行查询到mongo。 在三个请求和处理结束时。 我撰写了录音,并将其保存在数据库中。

我有异步,但不起作用。 也等着。 函数(脚本)在处理请求之前结束

function RequestOne(dateStart, dateEnd, RowToInsert) =

     CollectionOne.find({
        AQS_REF_TIME_EVENT_MSR: {
            $gte: startInterv,
            $lte: endInerv
        },

    })
    .exec((err, arrAqsOneHourMoy) => {
      if (err)
         return err;
      if (arrAqsOneHourMoy) {
         AttributeOneAverge = 0;
         AttributeTwoAverage = 0;

       for (i = 0; i < arrAqsOneHourMoy.length; i++) {
                AttributeOneAverge = (arrAqsOneHourMoy[i].AttributeOne + AttributeOneAverge);
                AttributeTwoAverge = (arrAqsOneHourMoy[i].AttributeTwo + AttributeTwoAverge);
            }

      RowToInsert.AttributeOne = ((AttributeOneAverge) / (i + 1));
      RowToInsert.AttributeOne = (AttributeTwoAverge) / (i + 1);
      }
    })
} 

功能二..相同逻辑

全局功能:

function GenericFunction(time, sensorID, TEST_oracle_save) {
var d = new Date(2018, 00, 03, 11, 00, 00, 000);
var x = d.toISOString();

var d2 = new Date(2018, 00, 03, 11, 59, 59, 999);
var y = d2.toISOString();


RequestOne(x, y, TEST_oracle_save);
RequestTwo(x, y, TEST_oracle_save);


//Connexion to ORACLE DATABASE 

//Connexion etablished 

// Persist TEST_oracle_save on field Oracle
}
function RequestOne(dateStart, dateEnd, RowToInsert) =

     CollectionOne.find({
        AQS_REF_TIME_EVENT_MSR: {
            $gte: startInterv,
            $lte: endInerv
        },

    })
    .exec((err, arrAqsOneHourMoy) => {
      if (err)
         return err;
      if (arrAqsOneHourMoy) {
         AttributeOneAverge = 0;
         AttributeTwoAverage = 0;

       for (i = 0; i < arrAqsOneHourMoy.length; i++) {
                AttributeOneAverge = (arrAqsOneHourMoy[i].AttributeOne + AttributeOneAverge);
                AttributeTwoAverge = (arrAqsOneHourMoy[i].AttributeTwo + AttributeTwoAverge);
            }

      RowToInsert.AttributeOne = ((AttributeOneAverge) / (i + 1));
      RowToInsert.AttributeOne = (AttributeTwoAverge) / (i + 1);
      }
    })
} 

功能二..相同逻辑

全局功能:

function GenericFunction(time, sensorID, TEST_oracle_save) {
var d = new Date(2018, 00, 03, 11, 00, 00, 000);
var x = d.toISOString();

var d2 = new Date(2018, 00, 03, 11, 59, 59, 999);
var y = d2.toISOString();


RequestOne(x, y, TEST_oracle_save);
RequestTwo(x, y, TEST_oracle_save);


//Connexion to ORACLE DATABASE 

//Connexion etablished 

// Persist TEST_oracle_save on field Oracle
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM