Checkpoint ajustes atuais

This commit is contained in:
Frederico Castro
2025-12-10 15:43:12 -03:00
parent 6f537336de
commit 1e24b5eda5
8 changed files with 62 additions and 1099 deletions

View File

@@ -1,60 +0,0 @@
# Scheduler de Ranking - Solução para OCP
## Problema
Em ambientes OpenShift Container Platform (OCP), não é possível usar cron dentro dos PODs.
## Solução Implementada
Loop asyncio nativo Python sem dependências externas.
### Características
- **100% Python nativo** - Usa apenas `asyncio` e `datetime`
- **Portável** - Funciona em qualquer ambiente Docker/Kubernetes/OCP
- **Sem dependências** - Removemos `apscheduler` do requirements.txt
- **Simples** - Loop infinito com sleep calculado até próximo horário
### Funcionamento
```python
# Calcula tempo até próxima execução (ex: 3h da manhã)
proxima_execucao = datetime.now().replace(hour=3, minute=0, second=0)
if agora >= proxima_execucao:
proxima_execucao += timedelta(days=1)
# Aguarda assincronamente
await asyncio.sleep(segundos_ate_proxima)
# Executa job
await job.executar(limpar_antes=True)
```
### Configuração
Padrão: **3h da manhã** (horário do servidor)
Para alterar: edite `backend/src/interface/api/app.py` linha 23:
```python
await scheduler.iniciar(hora_alvo=3) # Altere para outra hora
```
### Logs
```
Próxima execução do ranking: 11/12/2025 03:00:00
Scheduler do ranking iniciado: job rodará diariamente às 3h
```
### Execução Manual
Se precisar rodar fora do schedule:
```bash
curl -X POST "http://localhost:8000/api/v1/ranking/processar?limpar=true"
```
### Migração para OCP
Nenhuma configuração adicional necessária. O container já está pronto.

View File

@@ -0,0 +1,62 @@
id,pos_db,pos_calc,total_db,total_calc,delta,comp_a_db,comp_a_calc,comp_b_db,comp_b_calc,comp_c_db,comp_c_calc,comp_d_db,comp_d_calc,obs
12932,1,,775.0,775,0.0,270.0,270,135.0,135,190.0,190,180.0,180,
6370,2,,770.0,770,0.0,290.0,290,110.0,110,190.0,190,180.0,180,
536531,3,,770.0,770,0.0,300.0,300,100.0,100,190.0,190,180.0,180,
8127,4,,760.0,760,0.0,250.0,250,140.0,140,190.0,190,180.0,180,
509974,5,,760.0,760,0.0,230.0,230,160.0,160,190.0,190,180.0,180,
5420,6,,750.0,750,0.0,240.0,240,140.0,140,190.0,190,180.0,180,
7268,7,,750.0,750,0.0,270.0,270,160.0,160,190.0,190,130.0,130,
7825,8,,750.0,750,0.0,250.0,250,130.0,130,190.0,190,180.0,180,
14527,9,,750.0,750,0.0,240.0,240,140.0,140,190.0,190,180.0,180,
5843,10,,740.0,740,0.0,300.0,300,90.0,90,190.0,190,160.0,160,
5439,11,,735.0,735,0.0,250.0,250,100.0,100,215.0,215,170.0,170,
6392,12,,735.0,735,0.0,240.0,240,125.0,125,190.0,190,180.0,180,
510948,13,,735.0,735,0.0,280.0,280,110.0,110,215.0,215,130.0,130,
6273,14,,725.0,725,0.0,300.0,300,155.0,155,190.0,190,80.0,80,
22484,15,,725.0,725,0.0,220.0,220,110.0,110,215.0,215,180.0,180,
16,16,,720.0,720,0.0,220.0,220,130.0,130,190.0,190,180.0,180,
11353,17,,720.0,720,0.0,210.0,210,115.0,115,215.0,215,180.0,180,
15100,18,,720.0,720,0.0,240.0,240,110.0,110,190.0,190,180.0,180,
17385,19,,720.0,720,0.0,310.0,310,100.0,100,230.0,230,80.0,80,
510371,20,,720.0,720,0.0,200.0,200,125.0,125,215.0,215,180.0,180,
147706,100000,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147709,100001,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147711,100002,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147714,100003,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147722,100004,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147723,100005,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147730,100006,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147732,100007,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147733,100008,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147738,100009,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147739,100010,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147741,100011,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147744,100012,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147749,100013,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147753,100014,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147754,100015,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147756,100016,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147761,100017,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147768,100018,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147770,100019,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
147771,100020,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4864134,350215,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4862416,350214,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4862410,350213,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4862407,350212,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4860839,350211,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4860812,350210,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4860796,350209,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4860722,350208,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4860591,350207,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859353,350206,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859351,350205,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859325,350204,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859322,350203,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859100,350202,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859026,350201,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4859022,350200,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4858994,350199,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4858399,350198,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4858398,350197,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
4857410,350196,,0.0,0,0.0,0.0,0,0.0,0,0.0,0,0.0,0,
1 id pos_db pos_calc total_db total_calc delta comp_a_db comp_a_calc comp_b_db comp_b_calc comp_c_db comp_c_calc comp_d_db comp_d_calc obs
2 12932 1 775.0 775 0.0 270.0 270 135.0 135 190.0 190 180.0 180
3 6370 2 770.0 770 0.0 290.0 290 110.0 110 190.0 190 180.0 180
4 536531 3 770.0 770 0.0 300.0 300 100.0 100 190.0 190 180.0 180
5 8127 4 760.0 760 0.0 250.0 250 140.0 140 190.0 190 180.0 180
6 509974 5 760.0 760 0.0 230.0 230 160.0 160 190.0 190 180.0 180
7 5420 6 750.0 750 0.0 240.0 240 140.0 140 190.0 190 180.0 180
8 7268 7 750.0 750 0.0 270.0 270 160.0 160 190.0 190 130.0 130
9 7825 8 750.0 750 0.0 250.0 250 130.0 130 190.0 190 180.0 180
10 14527 9 750.0 750 0.0 240.0 240 140.0 140 190.0 190 180.0 180
11 5843 10 740.0 740 0.0 300.0 300 90.0 90 190.0 190 160.0 160
12 5439 11 735.0 735 0.0 250.0 250 100.0 100 215.0 215 170.0 170
13 6392 12 735.0 735 0.0 240.0 240 125.0 125 190.0 190 180.0 180
14 510948 13 735.0 735 0.0 280.0 280 110.0 110 215.0 215 130.0 130
15 6273 14 725.0 725 0.0 300.0 300 155.0 155 190.0 190 80.0 80
16 22484 15 725.0 725 0.0 220.0 220 110.0 110 215.0 215 180.0 180
17 16 16 720.0 720 0.0 220.0 220 130.0 130 190.0 190 180.0 180
18 11353 17 720.0 720 0.0 210.0 210 115.0 115 215.0 215 180.0 180
19 15100 18 720.0 720 0.0 240.0 240 110.0 110 190.0 190 180.0 180
20 17385 19 720.0 720 0.0 310.0 310 100.0 100 230.0 230 80.0 80
21 510371 20 720.0 720 0.0 200.0 200 125.0 125 215.0 215 180.0 180
22 147706 100000 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
23 147709 100001 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
24 147711 100002 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
25 147714 100003 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
26 147722 100004 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
27 147723 100005 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
28 147730 100006 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
29 147732 100007 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
30 147733 100008 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
31 147738 100009 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
32 147739 100010 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
33 147741 100011 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
34 147744 100012 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
35 147749 100013 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
36 147753 100014 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
37 147754 100015 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
38 147756 100016 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
39 147761 100017 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
40 147768 100018 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
41 147770 100019 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
42 147771 100020 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
43 4864134 350215 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
44 4862416 350214 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
45 4862410 350213 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
46 4862407 350212 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
47 4860839 350211 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
48 4860812 350210 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
49 4860796 350209 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
50 4860722 350208 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
51 4860591 350207 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
52 4859353 350206 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
53 4859351 350205 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
54 4859325 350204 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
55 4859322 350203 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
56 4859100 350202 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
57 4859026 350201 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
58 4859022 350200 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
59 4858994 350199 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
60 4858399 350198 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
61 4858398 350197 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0
62 4857410 350196 0.0 0 0.0 0.0 0 0.0 0 0.0 0 0.0 0

View File

@@ -1,20 +0,0 @@
-- Schema para Coordenações de Programa (PPG)
-- Dados extraídos de SUCUPIRA_PAINEL via MCP
CREATE TABLE TB_COORDENACAO_PROGRAMA (
ID_PESSOA NUMBER(10) NOT NULL,
ID_PROGRAMA_SNPG NUMBER(10) NOT NULL,
NM_PROGRAMA VARCHAR2(500),
CD_PROGRAMA_PPG VARCHAR2(50),
NOTA_PPG VARCHAR2(10),
NM_PROGRAMA_MODALIDADE VARCHAR2(100),
NM_AREA_AVALIACAO VARCHAR2(200),
DT_INICIO_VIGENCIA DATE,
DT_FIM_VIGENCIA DATE,
DH_CARGA TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT PK_COORDENACAO_PROGRAMA PRIMARY KEY (ID_PESSOA, ID_PROGRAMA_SNPG, DT_INICIO_VIGENCIA)
);
CREATE INDEX IDX_COORD_PPG_PESSOA ON TB_COORDENACAO_PROGRAMA(ID_PESSOA);
CREATE INDEX IDX_COORD_PPG_PROGRAMA ON TB_COORDENACAO_PROGRAMA(ID_PROGRAMA_SNPG);
CREATE INDEX IDX_COORD_PPG_ATIVO ON TB_COORDENACAO_PROGRAMA(DT_FIM_VIGENCIA);