From 0bea4dcda248c70b2cf87abfde19745a2493fabb Mon Sep 17 00:00:00 2001 From: kemuel Date: Fri, 28 Aug 2026 19:01:24 -0300 Subject: [PATCH] Chore(Materializacao): laco entra no supervisor da VPS, nao em memoria de gente AB#1480 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- knowledge | 2 +- scripts/atualizar_producao.sh | 5 ++++ scripts/supervisor-materializacao.conf | 35 ++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 scripts/supervisor-materializacao.conf diff --git a/knowledge b/knowledge index f8c0df145..3ea2f52ec 160000 --- a/knowledge +++ b/knowledge @@ -1 +1 @@ -Subproject commit f8c0df145abbb482cb80760a298f2bdff5e07578 +Subproject commit 3ea2f52ec2f3484e5634dc98aeb5050230117f89 diff --git a/scripts/atualizar_producao.sh b/scripts/atualizar_producao.sh index 1534d9c77..55b2ee54b 100755 --- a/scripts/atualizar_producao.sh +++ b/scripts/atualizar_producao.sh @@ -7,3 +7,8 @@ pip install -r requirements/dev-requirements.txt ./manage.py collectstatic --noinput deactivate 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)" diff --git a/scripts/supervisor-materializacao.conf b/scripts/supervisor-materializacao.conf new file mode 100644 index 000000000..9821608d7 --- /dev/null +++ b/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