Class ConjuntoLoteService

java.lang.Object
br.com.xadm.ingestao.ConjuntoLoteService

@Singleton public class ConjuntoLoteService extends Object
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 Details

  • Method Details

    • registrar

      public void registrar(String conjuntoId, int total)
      Registra o lote na primeira chamada (idempotente).
      Parameters:
      conjuntoId - id do lote
      total - total de arquivos do zip
    • registrarDuplicado

      public void registrarDuplicado(String conjuntoId)
      Arquivo já existente no banco (HTTP 200): conta e verifica se o lote fechou.
      Parameters:
      conjuntoId - id do lote
    • contabilizarNaoProcessado

      public void contabilizarNaoProcessado(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.
      Parameters:
      conjuntoId - id do lote
    • verificarENotificar

      public void verificarENotificar(String conjuntoId)
      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)