| 123456789101112131415161718192021222324252627282930313233343536 |
- // Roda a avaliação (estágio 1) em lotes até zerar a fila de pendentes.
- // Uso: node scripts/avaliarTudo.js [--lote 20]
- import { avaliarPendentes, contarPendentes } from "../src/services/atendimentoAvaliacaoService.js";
- const loteArg = process.argv.indexOf("--lote");
- const LOTE = loteArg > -1 ? Number(process.argv[loteArg + 1]) : 20;
- async function main() {
- let restantes = await contarPendentes();
- console.log(`[avaliar-tudo] ${restantes} pendentes, lotes de ${LOTE}`);
- while (restantes > 0) {
- const t0 = Date.now();
- const r = await avaliarPendentes({ limite: LOTE });
- restantes = await contarPendentes();
- console.log(
- `[avaliar-tudo] +${r.avaliados} avaliados, ${r.semDialogo} sem diálogo, ${r.erros.length} erros ` +
- `(${((Date.now() - t0) / 1000).toFixed(0)}s) — restam ${restantes}`
- );
- if (r.erros.length) r.erros.slice(0, 3).forEach((e) => console.log(" erro:", e.atendimentoId, e.erro));
- // lote sem nenhum progresso = algo estrutural errado; para em vez de girar para sempre
- if (r.avaliados === 0 && r.semDialogo === 0) {
- console.error("[avaliar-tudo] lote inteiro falhou, abortando");
- process.exit(1);
- }
- }
- console.log("[avaliar-tudo] fila zerada");
- process.exit(0);
- }
- main().catch((e) => {
- console.error("[avaliar-tudo] falha:", e.message);
- process.exit(1);
- });
|