Class StartupRecoveryService

java.lang.Object
br.com.vantroba.bi.transporte.powersync.StartupRecoveryService

@Singleton @Requires(property="app.recovery.enabled", notEquals="false") public class StartupRecoveryService extends Object
Recuperação ao subir a aplicação:
  • Processamentos órfãos em PROCESSANDO viram ERRO;
  • Processamentos em PENDENTE são re-enfileirados;
  • Resets órfãos em EM_ANDAMENTO (pool reset- morreu junto com a JVM) viram ERRO — desbloqueia o partial unique index pra novos resets.
  • Constructor Details

    • StartupRecoveryService

      public StartupRecoveryService(ProcessamentoRepository processamentoRepository, ProcessamentoProcessador processamentoProcessador, ResetarPowersyncRepository resetReplicationRepository)
      Cria o serviço de recuperação no startup.
      Parameters:
      processamentoRepository - repositório de acesso aos registros de processamento
      processamentoProcessador - executor assíncrono usado para re-enfileirar pendentes
      resetReplicationRepository - repositório de auditoria do reset; usado pra liberar rows órfãs em EM_ANDAMENTO.
  • Method Details

    • onStartup

      @EventListener public void onStartup(io.micronaut.runtime.event.ApplicationStartupEvent event)
      Dispara a recuperação quando a aplicação termina de subir.
      Parameters:
      event - evento de startup da aplicação Micronaut
    • recuperar

      public void recuperar()
      Lógica de recovery (startup e testes de integração). Marca PROCESSANDO como ERRO e re-enfileira PENDENTE.