feat: Implementa duas conexões Oracle simultâneas
- Oracle LOCAL (Docker): Para salvar TB_RANKING_CONSULTOR - Oracle REMOTO (CAPES): Para ler SUCUPIRA_PAINEL.VM_COORDENADOR - ConsultorRepositoryImpl usa oracle_remote para buscar PPG - RankingRepository usa oracle_local para salvar ranking - ProcessarRankingJob recebe ambos os clientes - Componente B agora está preparado para funcionar Nota: Elasticsearch precisa ser acessível da rede CAPES
This commit is contained in:
@@ -4,17 +4,27 @@ from contextlib import asynccontextmanager
|
||||
|
||||
from .routes import router
|
||||
from .config import settings
|
||||
from .dependencies import es_client, oracle_client, get_processar_job
|
||||
from .dependencies import es_client, oracle_local_client, oracle_remote_client, get_processar_job
|
||||
from ...application.jobs.scheduler import RankingScheduler
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await es_client.connect()
|
||||
|
||||
# Conectar Oracle LOCAL (Docker)
|
||||
try:
|
||||
oracle_client.connect()
|
||||
oracle_local_client.connect()
|
||||
print("Oracle LOCAL conectado (Docker)")
|
||||
except Exception as e:
|
||||
print(f"AVISO: Oracle não conectou: {e}. Sistema rodando sem Coordenação PPG.")
|
||||
print(f"AVISO: Oracle LOCAL não conectou: {e}")
|
||||
|
||||
# Conectar Oracle REMOTO (CAPES)
|
||||
try:
|
||||
oracle_remote_client.connect()
|
||||
print("Oracle REMOTO conectado (CAPES/SUCUPIRA_PAINEL)")
|
||||
except Exception as e:
|
||||
print(f"AVISO: Oracle REMOTO não conectou: {e}. Sistema rodando sem Componente B (PPG).")
|
||||
|
||||
scheduler = None
|
||||
try:
|
||||
@@ -33,8 +43,14 @@ async def lifespan(app: FastAPI):
|
||||
pass
|
||||
|
||||
await es_client.close()
|
||||
|
||||
try:
|
||||
oracle_client.close()
|
||||
oracle_local_client.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
oracle_remote_client.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user