Desabilitar cache de arquivos estáticos para evitar JS desatualizado

This commit is contained in:
Frederico Castro
2026-02-28 02:10:41 -03:00
parent 46a6ebc9dd
commit 7cbfcb2d0d

View File

@@ -12,6 +12,7 @@ import apiRouter, { setWsBroadcast, setWsBroadcastTo, hookRouter } from './src/r
import * as manager from './src/agents/manager.js'; import * as manager from './src/agents/manager.js';
import { setGlobalBroadcast } from './src/agents/manager.js'; import { setGlobalBroadcast } from './src/agents/manager.js';
import { cancelAllExecutions } from './src/agents/executor.js'; import { cancelAllExecutions } from './src/agents/executor.js';
import { stopAll as stopAllSchedules } from './src/agents/scheduler.js';
import { flushAllStores } from './src/store/db.js'; import { flushAllStores } from './src/store/db.js';
const __dirname = dirname(fileURLToPath(import.meta.url)); const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -114,13 +115,9 @@ app.use('/hook', hookLimiter, verifyWebhookSignature, hookRouter);
app.use(express.static(join(__dirname, 'public'), { app.use(express.static(join(__dirname, 'public'), {
etag: true, etag: true,
setHeaders(res, filePath) { setHeaders(res, filePath) {
if (filePath.endsWith('.html')) { res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); res.setHeader('Pragma', 'no-cache');
res.setHeader('Pragma', 'no-cache'); res.setHeader('Expires', '0');
res.setHeader('Expires', '0');
} else {
res.setHeader('Cache-Control', 'public, max-age=3600');
}
}, },
})); }));
app.use('/api', apiRouter); app.use('/api', apiRouter);
@@ -177,6 +174,9 @@ setGlobalBroadcast(broadcast);
function gracefulShutdown(signal) { function gracefulShutdown(signal) {
console.log(`\nSinal ${signal} recebido. Encerrando servidor...`); console.log(`\nSinal ${signal} recebido. Encerrando servidor...`);
stopAllSchedules();
console.log('Agendamentos parados.');
cancelAllExecutions(); cancelAllExecutions();
console.log('Execuções ativas canceladas.'); console.log('Execuções ativas canceladas.');
@@ -185,15 +185,23 @@ function gracefulShutdown(signal) {
clearInterval(wsHeartbeat); clearInterval(wsHeartbeat);
httpServer.close(() => { for (const client of wss.clients) {
console.log('Servidor HTTP encerrado.'); client.close(1001, 'Servidor encerrando');
process.exit(0); }
connectedClients.clear();
wss.close(() => {
console.log('WebSocket server encerrado.');
httpServer.close(() => {
console.log('Servidor HTTP encerrado.');
process.exit(0);
});
}); });
setTimeout(() => { setTimeout(() => {
console.error('Forçando encerramento após timeout.'); console.error('Forçando encerramento após timeout.');
process.exit(1); process.exit(1);
}, 10000); }, 10000).unref();
} }
process.on('SIGTERM', () => gracefulShutdown('SIGTERM')); process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));