feat: Implementa job de ranking para 300k consultores
Backend: - Adiciona Scroll API no cliente Elasticsearch para processar todos os 300k+ consultores - Cria tabela TB_RANKING_CONSULTOR no Oracle para ranking pré-calculado - Implementa job de processamento com APScheduler (diário às 3h) - Adiciona endpoints: /ranking/paginado, /ranking/status, /ranking/processar, /ranking/estatisticas - Repository Oracle com paginação eficiente via ROW_NUMBER - Status do job com progresso em tempo real (polling) - Leitura automática de LOBs no OracleClient Frontend: - Componente RankingPaginado com paginação completa - Barra de progresso do job em tempo real - Botão para reprocessar ranking - Alternância entre Top N (rápido) e Ranking Completo (300k) Infraestrutura: - Docker compose com depends_on para garantir Oracle disponível - Schema SQL com procedure SP_ATUALIZAR_POSICOES - Índices otimizados para paginação
This commit is contained in:
@@ -17,6 +17,9 @@ services:
|
||||
volumes:
|
||||
- ./backend/src:/app/src
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
depends_on:
|
||||
oracle18c:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- shared_network
|
||||
restart: unless-stopped
|
||||
@@ -40,7 +43,33 @@ services:
|
||||
networks:
|
||||
- shared_network
|
||||
restart: unless-stopped
|
||||
|
||||
oracle18c:
|
||||
container_name: mqapilc_oracle18c
|
||||
image: gvenzl/oracle-xe:18-slim
|
||||
environment:
|
||||
- ORACLE_PASSWORD=local123
|
||||
- ORACLE_CHARACTERSET=AL32UTF8
|
||||
- APP_USER=locasl123
|
||||
- APP_USER_PASSWORD=local123
|
||||
- TZ=America/Sao_Paulo
|
||||
ports:
|
||||
- "1521:1521"
|
||||
- "5500:5500"
|
||||
volumes:
|
||||
- oracle_data:/opt/oracle/oradata
|
||||
healthcheck:
|
||||
test: ["CMD", "bash", "-c", "echo 'SELECT 1 FROM DUAL;' | sqlplus -s SYSTEM/\"$${ORACLE_PASSWORD}\"@localhost:1521/XEPDB1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 20
|
||||
networks:
|
||||
- shared_network
|
||||
|
||||
networks:
|
||||
shared_network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
oracle_data:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user