Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 9078533

Browse files
Merge pull request #89 from topcoder-platform/fix-recollect-dbtoes
Recollect dumpDbToEs.js script
2 parents 7d751bf + 1d01022 commit 9078533

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

config/default.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ module.exports = {
126126
orgField: process.env.ORGANIZATION_SKILLPROVIDER_PROPERTY_NAME || 'skillProviders'
127127
}
128128
},
129-
MAX_BATCH_SIZE: parseInt(process.env.MAX_RESULT_SIZE, 10) || 10000,
129+
MAX_BATCH_SIZE: parseInt(process.env.MAX_BATCH_SIZE, 10) || 10000,
130130
MAX_RESULT_SIZE: parseInt(process.env.MAX_RESULT_SIZE, 10) || 1000,
131131
MAX_BULK_SIZE: parseInt(process.env.MAX_BULK_SIZE, 10) || 100
132132
}

scripts/db/dumpDbToEs.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -391,14 +391,12 @@ async function main () {
391391

392392
for (let i = 0; i < keys.length; i++) {
393393
const key = keys[i]
394+
const queryPage = { perPage: parseInt(config.get('ES.MAX_BATCH_SIZE'), 10), page: 1 }
394395
try {
395-
const allData = await dbHelper.find(models[key], {})
396-
let j = 0
397-
const dataset = _.chunk(allData, config.get('ES.MAX_BATCH_SIZE'))
398-
for (const data of dataset) {
396+
while (true) {
397+
const data = await dbHelper.find(models[key], { ...queryPage })
399398
for (let i = 0; i < data.length; i++) {
400-
j++
401-
logger.info(`Inserting data ${j} of ${allData.length}`)
399+
logger.info(`Inserting data ${(i + 1) + (queryPage.perPage * (queryPage.page - 1))}`)
402400
logger.info(JSON.stringify(data[i]))
403401
if (!_.isString(data[i].created)) {
404402
data[i].created = new Date()
@@ -414,14 +412,18 @@ async function main () {
414412
}
415413
}
416414
await insertIntoES(key, data)
415+
if (data.length < queryPage.perPage) {
416+
logger.info('import data for ' + key + ' done')
417+
break
418+
} else {
419+
queryPage.page = queryPage.page + 1
420+
}
417421
}
418-
logger.info('import data for ' + key + ' done')
419422
} catch (e) {
420423
logger.error(e)
421424
logger.warn('import data for ' + key + ' failed')
422425
continue
423426
}
424-
425427
try {
426428
await createAndExecuteEnrichPolicy(key)
427429
logger.info('create and execute enrich policy for ' + key + ' done')

0 commit comments

Comments
 (0)