perf: remover polling de storage-stats e trabalho repetido na busca do cache
- useStorageMonitor: o efeito com setInterval de 10 s chamava /api/storage-stats em toda aba aberta só para escrever no console (nenhum estado é atualizado); o servidor faz fs.stat e conta as chaves do cache a cada chamada. A busca inicial de estatísticas continua. - JsonCacheManager.searchProducts: convertToAPIProduct rodava duas vezes por produto (filtro e map) e a relevância era recalculada, com toLowerCase, a cada comparação do sort; agora é uma vez por produto.
This commit is contained in:
1 parent
a9ab66e26f
commit
3d59903114
2 files changed
+13
-53
No files matched your search
@@ -86,44 +86,6 @@ export function useStorageMonitor(): UseStorageMonitorReturn {
|
||||
fetchStats();
|
||||
}, [fetchStats]);
|
||||
|
||||
// Monitoramento automático para todos os usuários
|
||||
useEffect(() => {
|
||||
let intervalId: NodeJS.Timeout | null = null;
|
||||
|
||||
const startMonitoring = async () => {
|
||||
// Executar imediatamente
|
||||
await fetchAndDisplayStats();
|
||||
|
||||
// Depois executar a cada 10 segundos
|
||||
intervalId = setInterval(async () => {
|
||||
await fetchAndDisplayStats();
|
||||
}, 10000);
|
||||
};
|
||||
|
||||
const fetchAndDisplayStats = async () => {
|
||||
try {
|
||||
const response = await fetch("/api/storage-stats");
|
||||
const data = await response.json();
|
||||
|
||||
if (data.success) {
|
||||
console.log(
|
||||
`[Monitor] Total de produtos no cache: ${data.data.totalProducts} produtos`
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[Monitor] Erro ao buscar estatísticas:", error);
|
||||
}
|
||||
};
|
||||
|
||||
startMonitoring();
|
||||
|
||||
return () => {
|
||||
if (intervalId) {
|
||||
clearInterval(intervalId);
|
||||
}
|
||||
};
|
||||
}, []);
|
||||
|
||||
return {
|
||||
stats,
|
||||
isLoading,
|
||||
|
||||
Reference in new issue
Block a user