fix: resolver problemas identificados no code review
Correções de segurança: - SQL Injection: usar prepared statements em ranking_repository.py - Validação de entrada para parâmetros page/size Correções de bugs: - Bônus de continuidade: 15→20 pts para 8+ anos (conforme especificação) - Memory leak: limpar _consultores após processamento do ranking Melhorias de robustez: - Substituir bare except por exceções específicas - Threading.Lock para padrão singleton thread-safe - Pool Oracle com configuração otimizada (timeout/getmode) - ES client com timeouts diferenciados e verificação is_closed - Logging para tipos de coordenação desconhecidos Correções frontend: - Polling com timeout máximo de 5 minutos - useEffect cleanup para setTimeout - React.memo e useMemo para otimização de performance
This commit is contained in:
@@ -72,7 +72,11 @@ function App() {
|
||||
setProcessMessage('Processamento do ranking já iniciado. Aguardando...');
|
||||
}
|
||||
|
||||
while (true) {
|
||||
const MAX_POLLING_TIME = 5 * 60 * 1000;
|
||||
const POLLING_INTERVAL = 4000;
|
||||
const startTime = Date.now();
|
||||
|
||||
while (Date.now() - startTime < MAX_POLLING_TIME) {
|
||||
try {
|
||||
const st = await rankingService.getStatus();
|
||||
setProcessMessage(st.mensagem || `Processando... ${st.progress || 0}%`);
|
||||
@@ -83,7 +87,11 @@ function App() {
|
||||
} catch (e) {
|
||||
setProcessMessage('Aguardando status do processamento...');
|
||||
}
|
||||
await new Promise((r) => setTimeout(r, 4000));
|
||||
await new Promise((r) => setTimeout(r, POLLING_INTERVAL));
|
||||
}
|
||||
|
||||
if (Date.now() - startTime >= MAX_POLLING_TIME) {
|
||||
throw new Error('Timeout: processamento demorou mais que 5 minutos');
|
||||
}
|
||||
|
||||
const response = await rankingService.getRanking(page, pageSize);
|
||||
|
||||
Reference in New Issue
Block a user