Ir para o conteúdo

Cron systemd (timers)

Em produção, coaching-cron-tick.timer chama POST /api/cron/tick em intervalos fixos. O tick carrega linhas CronScheduledJob na base de dados e invoca o caminho HTTP de cada job na hora com o segredo do cron.

Um só timer

As unidades systemd coaching-alerts foram removidas do repositório. A geração agendada de alertas é feita por jobs executados pelo tick (ver seed / UI de administração).

Instalação rápida

sudo bash deploy/cron/install.sh

Garante que existe /etc/coaching/cron.env com BASE_URL e CRON_SECRET alinhados ao .env da aplicação.

Pipeline de deploy

A página de administração Deploy executa deploy/cron/install-from-deploy.sh depois do build Next.js para manter os ficheiros de unidades sincronizados com o repositório. O utilizador do processo Node (muitas vezes coaching) precisa de:

  • Um sudo bash deploy/cron/install.sh manual após o clone, ou
  • sudo sem palavra-passe só para install.sh — ver deploy/cron/README.md no repositório para a linha exacta do sudoers.

Se o sudo não estiver configurado, o passo imprime SKIP e o deploy continua com sucesso.

Verificação

sudo systemctl list-timers | grep coaching
sudo journalctl -u coaching-cron-tick.service -n 50 --no-pager