Browse Source

Chore(Materializacao): laco entra no supervisor da VPS, nao em memoria de gente AB#1480

O SAPL de producao roda fora de docker; o start.sh do container nunca vale
la e o laco dependia de alguem lembrar de subir — o gap que deixou a IND
826/2026 sem materializar. O conf do supervisor (mesmo mecanismo do
gunicorn) da boot + autorestart, e o atualizar_producao.sh passa a
reiniciar o programa a cada deploy, avisando alto se ele nao existir.
Ponteiro do knowledge/ atualizado junto (ADR-0012).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pull/3858/head
kemuel 3 weeks ago
parent
commit
0bea4dcda2
  1. 2
      knowledge
  2. 5
      scripts/atualizar_producao.sh
  3. 35
      scripts/supervisor-materializacao.conf

2
knowledge

@ -1 +1 @@
Subproject commit f8c0df145abbb482cb80760a298f2bdff5e07578 Subproject commit 3ea2f52ec2f3484e5634dc98aeb5050230117f89

5
scripts/atualizar_producao.sh

@ -7,3 +7,8 @@ pip install -r requirements/dev-requirements.txt
./manage.py collectstatic --noinput ./manage.py collectstatic --noinput
deactivate deactivate
sudo supervisorctl restart sapl sudo supervisorctl restart sapl
# Materializacao do PDF-alvo (ADR 0014): reinicia junto do deploy para pegar
# codigo novo. Se o programa ainda nao existe no supervisor, instalar com
# scripts/supervisor-materializacao.conf (instrucoes no cabecalho do arquivo).
sudo supervisorctl restart sapl-materializacao \
|| echo "AVISO: programa sapl-materializacao nao instalado no supervisor — sem ele, materia protocolada NAO vira pendencia no app (ver scripts/supervisor-materializacao.conf)"

35
scripts/supervisor-materializacao.conf

@ -0,0 +1,35 @@
; Laco da materializacao do PDF-alvo da assinatura (ADR 0014).
;
; Sem este programa rodando, materia protocolada NUNCA vira pendencia de
; assinatura no app — so por clique manual no painel, em silencio. O SAPL de
; producao roda fora de docker, entao o laco nao sobe sozinho com o servico:
; e o supervisor (o mesmo que mantem o gunicorn) quem garante boot + restart.
;
; Instalacao (uma vez):
; sudo cp scripts/supervisor-materializacao.conf /etc/supervisor/conf.d/sapl-materializacao.conf
; -> ajustar command/directory/user espelhando o [program:sapl] ja existente
; em /etc/supervisor/conf.d/ (mesmo venv, mesmo diretorio, mesmo usuario)
; sudo supervisorctl reread && sudo supervisorctl update
; sudo supervisorctl status sapl-materializacao
;
; Acompanhamento: o painel /sistema/integracao/materializacao/ — fila de
; prioridade crescendo sem esvaziar = este programa caiu.
[program:sapl-materializacao]
; AJUSTAR os tres caminhos abaixo para o layout da VPS (copiar do [program:sapl])
command=/var/interlegis/.virtualenvs/sapl/bin/python manage.py materializar_pdfs_para_assinatura --intervalo 300 --tick 15
directory=/var/interlegis/sapl
user=sapl
autostart=true
autorestart=true
startsecs=10
; O SIGTERM derruba o laco no meio de uma passada sem drama: a linha aberta em
; PassadaMaterializacao fica orfa e a propria rotina a fecha e destrava o lock
; na subida seguinte (_fechar_orfas).
stopasgroup=true
killasgroup=true
redirect_stderr=true
stdout_logfile=/var/log/sapl-materializacao.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=3
Loading…
Cancel
Save