Files
HoruxDespachosNuevo/apps/api/scripts/process-metricas-now.ts

33 lines
1.1 KiB
TypeScript

/**
* Dispara manualmente el procesamiento de `metricas_invalidaciones` para todos
* los tenants. Útil tras un `invalidate-metricas-all.ts` para no esperar al
* cron (cada 15 min).
*
* Uso:
* pnpm --filter @horux/api exec tsx scripts/process-metricas-now.ts
*/
import { prisma } from '../src/config/database.js';
import { processAllTenantsInvalidations } from '../src/services/metricas-compute.service.js';
async function main() {
console.log('=== Procesar metricas_invalidaciones (all tenants) ===\n');
const start = Date.now();
const r = await processAllTenantsInvalidations();
const elapsed = ((Date.now() - start) / 1000).toFixed(1);
console.log(
`\nTenants revisados: ${r.tenantsRevisados}\n` +
`Invalidaciones procesadas: ${r.totalProcesadas}\n` +
`Filas metricas_mensuales escritas: ${r.totalFilasEscritas}\n` +
`Errores: ${r.totalErrores}\n` +
`Tiempo: ${elapsed}s`,
);
await prisma.$disconnect();
process.exit(r.totalErrores > 0 ? 1 : 0);
}
main().catch(async (err) => {
console.error('Fatal:', err);
await prisma.$disconnect().catch(() => {});
process.exit(1);
});