Pular para o conteúdo principal

Serviço Cron

A aplicação inclui um serviço cron separado para lidar com tarefas agendadas:

Iniciar serviço cron em modo de desenvolvimento

pnpm cron:dev

Iniciar serviço cron em modo de produção

pnpm cron:start

Iniciar serviço cron localmente (para testes)

pnpm cron:start-local

O serviço cron é executado em uma porta separada (8667 em desenvolvimento, 9667 em produção) e manipula tarefas agendadas como notificações de backup atrasado. A porta pode ser configurada usando a variável de ambiente CRON_PORT.

O serviço de cron inclui:

  • Endpoint de verificação de saúde: /health - Retorna o status do serviço e tarefas ativas
  • Acionamento manual de tarefas: POST /trigger/:taskName - Executar manualmente tarefas agendadas
  • Gerenciamento de tarefas: POST /start/:taskName e POST /stop/:taskName - Controlar tarefas individuais
  • Recarregamento de configuração: POST /reload-config - Recarregar configuração do banco de dados
  • Reinício automático: O serviço reinicia automaticamente se travar (gerenciado por docker-entrypoint.sh em implantações Docker)
  • Modo de observação: Modo de desenvolvimento inclui observação de arquivos para reinícios automáticos em mudanças de código
  • Monitoramento de backups atrasados: Verificação e notificação automatizada de backups atrasados (executa a cada 5 minutos por padrão)
  • Limpeza de log de auditoria: Limpeza automatizada de entradas antigas do log de auditoria (executa diariamente às 2h UTC)
  • Agendamento flexível: Expressões cron configuráveis para diferentes tarefas
  • Integração de banco de dados: Compartilha o mesmo banco de dados SQLite com o aplicativo principal
  • API RESTful: API completa para gerenciamento e monitoramento do serviço