想要并行运行几个db.query()方法而不会出现任何错误

时间:2016-09-19 09:51:09

标签: node.js orientdb orientjs

我正在使用Node JS。我是初学者。我使用OrientJS连接来自Node JS的orientdb。我想并行运行几个db.query()方法。通过使用逐行模块读取大文本文件来形成此查询。

例如,

var queryForGeoUpdate = 'update (' +
    '\nselect  from (' +
    "\n  select expand(outE('GeoAgentSummary')) " +
    '\n  from Agent ' +
    '\n  where name = "' + name + '" and number = \'' + number + "' and type = '" + type + "'" +
    "\n) where in.name  = '" + Geo + "'" +
    '\n)  increment _' + FiscalYear + ' = ' + TMSSalesAllocatedBookingsNet + 'f,  _' +
    FiscalPeriodID + ' = ' + TMSSalesAllocatedBookingsNet +
    'f, _' + FiscalQuarterID + ' = ' + TMSSalesAllocatedBookingsNet + 'f'

  // console.log(queryForGeoUpdate)
  db.query(queryForGeoUpdate) // query and db call for Country ends here
像db.query(queryForGeoUpdate)一样有七个查询,比如db.query(queryForRegionUpdate)等等...

如果我异步运行"处理内存不足的情况"。如果我同步运行它需要花费太多时间。我怎样才能在很短的时间内解决它..

感谢任何帮助..

1 个答案:

答案 0 :(得分:2)

我不熟悉您正在使用的数据库。如果您确定数据库工作“正确”并且您拨打的电话是正确的(例如,如果没有办法让您的查询更小),您可以尝试运行:

节点--max_old_space_size =“以MB为单位的memmory,尝试像8192这样大的东西”app.js

数据库查询耗尽内存时似乎很奇怪...我总是认为查询通常会占用大量CPU资源并且需要相对较少的内存。

对于这些大型查询,您可能还会尝试生成单独的进程:

https://nodejs.org/api/child_process.html