Хотите запустить несколько методов db.query() параллельно без каких-либо ошибок

Я использую Node JS . Я начинающий. Я использую OrientJS для подключения orientdb от Node JS . Я хочу запустить несколько методов 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 ответ

Решение

Я не знаком с БД, которую вы используете. Если вы уверены, что БД работает "правильно" и ваши звонки верны (например, если нет способа сделать ваши запросы намного меньше), вы можете попробовать выполнить с:

node --max_old_space_size = "Память в МБ, попробуйте что-нибудь большое, например, 8192" app.js

Кажется довольно странным, что запрос к БД исчерпал бы память… Я всегда предполагал, что запросы, вообще говоря, намного более интенсивно загружают процессор и требуют относительно мало памяти.

Для такого рода больших запросов вы также можете попробовать запустить отдельные процессы:

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

Другие вопросы по тегам