From 631d7888b05237a598e7e5e31a20d10180ac5b07 Mon Sep 17 00:00:00 2001 From: kadami <86646883+kadamidev@users.noreply.github.com> Date: Tue, 4 Feb 2025 05:40:28 +1100 Subject: [PATCH] improve logging, output failures to file --- .../index-published-nodes-elastic-search.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/desci-server/src/scripts/index-published-nodes-elastic-search.ts b/desci-server/src/scripts/index-published-nodes-elastic-search.ts index f7853b9c..a1cf4b5e 100644 --- a/desci-server/src/scripts/index-published-nodes-elastic-search.ts +++ b/desci-server/src/scripts/index-published-nodes-elastic-search.ts @@ -2,10 +2,11 @@ * Indexing job for backfilling published nodes onto elastic search */ +import fs from 'fs/promises'; + import { prisma } from '../client.js'; import { logger as parentLogger } from '../logger.js'; import { ElasticNodesService } from '../services/ElasticNodesService.js'; - const logger = parentLogger.child({ module: 'SCRIPTS::IndexPublishedNodesES' }); async function main() { @@ -47,14 +48,28 @@ async function main() { ); } + const failures = []; + let i = 0; for (const { id, uuid } of slicedNodeUuids) { logger.info({ uuid, nodeId: id }, `[ES Native Node Backfill] Indexing node ${i}/${nodeUuids.length}`); - await ElasticNodesService.indexResearchObject(uuid); + const result = await ElasticNodesService.indexResearchObject(uuid); + if ('success' in result && !result.success) { + logger.error({ uuid, nodeId: id, error: result.error }, 'Error indexing node'); + failures.push(result); + } logger.info({ uuid, nodeId: id }, `[ES Native Node Backfill] Completed indexing node ${i}/${nodeUuids.length}`); i++; } + if (failures.length > 0) { + logger.error({ failures }, `[ES Native Node Backfill] ${failures.length} Failures during ES indexing`); + const failuresPath = './es-indexing-failures.json'; + await fs.writeFile(failuresPath, JSON.stringify(failures, null, 2)); + logger.info(`[ES Native Node Backfill] Saved failures to ${failuresPath}`); + } + logger.info(`[ES Native Node Backfill] ${failures.length} failures during indexing`); + logger.info('[ES Native Node Backfill] Script finished executing'); process.exit(0); }