Хотите запустить несколько методов 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
Кажется довольно странным, что запрос к БД исчерпал бы память… Я всегда предполагал, что запросы, вообще говоря, намного более интенсивно загружают процессор и требуют относительно мало памяти.
Для такого рода больших запросов вы также можете попробовать запустить отдельные процессы: