feat(frontend): adicionar modais de detalhes para itens das listas
- Criar componente ItemDetalheModal para exibir detalhes de atuações - Adicionar modais clicáveis em: vínculos, coordenações, premiações, avaliações, inscrições e participações - Melhorar healthcheck do Oracle no docker-compose - Adicionar retry com backoff na conexão Oracle - Padronizar tamanho dos badges de tipos de atuação
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import logging
|
||||
import time
|
||||
|
||||
import oracledb
|
||||
from typing import List, Dict, Any, Optional
|
||||
@@ -15,32 +16,40 @@ class OracleClient:
|
||||
self._pool: Optional[oracledb.ConnectionPool] = None
|
||||
self._connected = False
|
||||
|
||||
def connect(self) -> None:
|
||||
try:
|
||||
test_conn = oracledb.connect(
|
||||
user=self.user,
|
||||
password=self.password,
|
||||
dsn=self.dsn,
|
||||
)
|
||||
test_conn.ping()
|
||||
test_conn.close()
|
||||
def connect(self, max_retries: int = 10, initial_delay: float = 2.0) -> None:
|
||||
for attempt in range(max_retries):
|
||||
try:
|
||||
test_conn = oracledb.connect(
|
||||
user=self.user,
|
||||
password=self.password,
|
||||
dsn=self.dsn,
|
||||
)
|
||||
test_conn.ping()
|
||||
test_conn.close()
|
||||
|
||||
self._pool = oracledb.create_pool(
|
||||
user=self.user,
|
||||
password=self.password,
|
||||
dsn=self.dsn,
|
||||
min=1,
|
||||
max=10,
|
||||
increment=1,
|
||||
)
|
||||
self._connected = True
|
||||
logger.info(f"Pool Oracle conectado: {self.dsn}")
|
||||
except oracledb.Error as e:
|
||||
logger.error(f"Oracle database error: {e}")
|
||||
self._connected = False
|
||||
except Exception as e:
|
||||
logger.error(f"Oracle connection error: {e}")
|
||||
self._connected = False
|
||||
self._pool = oracledb.create_pool(
|
||||
user=self.user,
|
||||
password=self.password,
|
||||
dsn=self.dsn,
|
||||
min=1,
|
||||
max=10,
|
||||
increment=1,
|
||||
)
|
||||
self._connected = True
|
||||
logger.info(f"Pool Oracle conectado: {self.dsn}")
|
||||
return
|
||||
except oracledb.Error as e:
|
||||
delay = initial_delay * (2 ** attempt)
|
||||
if attempt < max_retries - 1:
|
||||
logger.warning(f"Oracle tentativa {attempt + 1}/{max_retries} falhou: {e}. Retry em {delay:.1f}s...")
|
||||
time.sleep(delay)
|
||||
else:
|
||||
logger.error(f"Oracle database error: {e}")
|
||||
self._connected = False
|
||||
except Exception as e:
|
||||
logger.error(f"Oracle connection error: {e}")
|
||||
self._connected = False
|
||||
return
|
||||
|
||||
def close(self) -> None:
|
||||
if self._pool:
|
||||
|
||||
Reference in New Issue
Block a user