Class ResetarPowersyncService
java.lang.Object
br.com.vantroba.bi.transporte.powersync.ResetarPowersyncService
Orquestra os 9 steps do reset da replicação PowerSync.
Princípios:
RESET_SLOTé executado antes deDROP_MONGO— falha em reset deixa Mongo intacto, sistema volta a operar normalmente apósRESUME.- Cada step grava em
steps_completadosao concluir, dando visibilidade durante a execução viaGET /admin/resetar-powersync/{id}. - Cada step também escreve uma linha em
atividade_atual— lida em tempo real pela tela/admin/resetar-powersync/{id}via polling de 2 s. - Pool dedicado
reset-(single-thread) — não compete com pipeline de XLS.
-
Constructor Summary
ConstructorsConstructorDescriptionResetarPowersyncService(ResetarPowersyncRepository repository, BiConfiguracaoRepository biConfiguracaoRepository, PowerSyncProcessControl processControl, MongoAdminService mongoAdmin, PostgresReplicationAdmin pgAdmin, ResetarPowersyncNotificador notificador, PowersyncMongoConfig mongo, PowersyncPostgresConfig postgres, PowersyncNukeConfig nuke) Cria o serviço com suas dependências e o pool single-thread dedicado ao reset. -
Method Summary
Modifier and TypeMethodDescriptionbuscarStatus(long id) Status de uma execução de reset por id; vazio se não existe.Token configurado empowersync.nuke.confirmation-token.Cria a rowEM_ANDAMENTO(síncrono — pode lançar 409) e dispara a execução em background.booleanIndica se o endpoint deve responder 503 — config ausente.io.micronaut.data.model.Page<ResetarPowersync> listar(io.micronaut.data.model.Pageable pageable) Página de execuções de reset, das mais recentes para as mais antigas.voidshutdown()Encerra o pool dedicado do reset no shutdown do contêiner (@PreDestroy).
-
Constructor Details
-
ResetarPowersyncService
public ResetarPowersyncService(ResetarPowersyncRepository repository, BiConfiguracaoRepository biConfiguracaoRepository, PowerSyncProcessControl processControl, MongoAdminService mongoAdmin, PostgresReplicationAdmin pgAdmin, ResetarPowersyncNotificador notificador, PowersyncMongoConfig mongo, PowersyncPostgresConfig postgres, PowersyncNukeConfig nuke) Cria o serviço com suas dependências e o pool single-thread dedicado ao reset.- Parameters:
repository- repositório de persistência das execuções de resetbiConfiguracaoRepository- repositório do marcadorultimo_nuke, atualizado noSTEP_FINALIZARpara sinalizar clientes Dart (spec 007 —disconnectAndClear)processControl- controle de pause/resume do PowerSync ServicemongoAdmin- operações administrativas no MongoDB do PowerSyncpgAdmin- operações administrativas nos slots de replicação do PostgreSQLnotificador- formata e dispara as notificações Telegram do resetmongo- configuração do Mongo do PowerSync (powersync.mongodb.*)postgres- configuração da replicação Postgres (powersync.postgres.*)nuke- configuração de confirmação e bootstrap (powersync.nuke.*)
-
-
Method Details
-
isDisabled
public boolean isDisabled()Indica se o endpoint deve responder 503 — config ausente.- Returns:
truese o token de confirmação não estiver configurado
-
confirmationToken
Token configurado empowersync.nuke.confirmation-token.- Returns:
- o token de confirmação, ou string vazia se não configurado
-
buscarStatus
Status de uma execução de reset por id; vazio se não existe.- Parameters:
id- identificador da execução de reset- Returns:
- a execução encontrada, ou
Optional.empty()se não existir
-
listar
public io.micronaut.data.model.Page<ResetarPowersync> listar(io.micronaut.data.model.Pageable pageable) Página de execuções de reset, das mais recentes para as mais antigas.- Parameters:
pageable- página e tamanho pedidos; a ordenação é sempre por início decrescente- Returns:
- a página, com o total de execuções registradas
-
executar
Cria a rowEM_ANDAMENTO(síncrono — pode lançar 409) e dispara a execução em background. Retorna o id pra o cliente fazer polling.- Parameters:
motivo- motivo informado para a execução do resetiniciadoPor- identificação de quem disparou o resetwaitSecsOverride- sobrescreve o tempo de espera de bootstrap (segundos); quandonull, usa o default configurado- Returns:
- a execução de reset recém-criada, com o id para polling
-
shutdown
@PreDestroy public void shutdown()Encerra o pool dedicado do reset no shutdown do contêiner (@PreDestroy).
-