Class ConjuntoLoteService
java.lang.Object
br.com.xadm.ingestao.ConjuntoLoteService
Coordena o ciclo de vida de um lote (.zip). Após cada arquivo terminar (ou ser duplicata,
ou não-processável), verifica atomicamente se o lote fechou e, se sim, dispara o resumo.
Agnóstico de domínio: a contagem de finalizados vem de ContadorProcessamentosFinalizados
e a entrega do resumo de ResumoLoteNotificador — o app fornece as duas SPIs.
-
Constructor Summary
ConstructorsConstructorDescriptionConjuntoLoteService(ConjuntoLoteRepository loteRepository, ContadorProcessamentosFinalizados contador, ResumoLoteNotificador notificador) -
Method Summary
Modifier and TypeMethodDescriptionvoidcontabilizarNaoProcessado(String conjuntoId) Entrada do zip que não gerou processamento nem era duplicata-sucesso (rejeitada por tipo/magic, ou já em andamento): conta para o lote fechar mesmo assim.voidRegistra o lote na primeira chamada (idempotente).voidregistrarDuplicado(String conjuntoId) Arquivo já existente no banco (HTTP 200): conta e verifica se o lote fechou.voidverificarENotificar(String conjuntoId) Verifica atomicamente se o lote fechou; o thread vencedor dispara o resumo.
-
Constructor Details
-
ConjuntoLoteService
public ConjuntoLoteService(ConjuntoLoteRepository loteRepository, ContadorProcessamentosFinalizados contador, ResumoLoteNotificador notificador) - Parameters:
loteRepository- persistência do lotecontador- SPI de contagem de processamentos finalizados (schema do app)notificador- SPI de entrega do resumo do lote fechado
-
-
Method Details
-
registrar
Registra o lote na primeira chamada (idempotente).- Parameters:
conjuntoId- id do lotetotal- total de arquivos do zip
-
registrarDuplicado
Arquivo já existente no banco (HTTP 200): conta e verifica se o lote fechou.- Parameters:
conjuntoId- id do lote
-
contabilizarNaoProcessado
Entrada do zip que não gerou processamento nem era duplicata-sucesso (rejeitada por tipo/magic, ou já em andamento): conta para o lote fechar mesmo assim.- Parameters:
conjuntoId- id do lote
-
verificarENotificar
Verifica atomicamente se o lote fechou; o thread vencedor dispara o resumo. Chamar após cada processamento (SUCESSO/ERRO) de um arquivo que pertence a um lote.- Parameters:
conjuntoId- id do lote (nullé ignorado)
-