33 lines
1.1 KiB
TypeScript
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);
|
|
});
|