Add periodic cleanup for orphaned terminals
Every 5 minutes, check for terminals whose sessions have ended but weren't properly disposed. This handles cases where a server crash or network issue prevented normal WebSocket close.
This commit is contained in:
parent
22c5c3d102
commit
58996a51f8
1 changed files with 16 additions and 0 deletions
|
|
@ -727,4 +727,20 @@ setInterval(() => {
|
|||
// Periodic persistence of dirty session states (every 5s)
|
||||
setInterval(persistDirtySessions, 5000);
|
||||
|
||||
// Periodic cleanup for orphaned terminals (every 5 minutes)
|
||||
// Handles cases where session ended but WebSocket didn't close properly
|
||||
setInterval(
|
||||
() => {
|
||||
for (const [sessionId, termSession] of sessionTerminals.entries()) {
|
||||
const session = getSession(sessionId);
|
||||
if (session?.ended_at) {
|
||||
console.debug(`Cleaning up orphaned terminal for session ${sessionId}`);
|
||||
disposeTerminal(termSession);
|
||||
sessionTerminals.delete(sessionId);
|
||||
}
|
||||
}
|
||||
},
|
||||
5 * 60 * 1000,
|
||||
);
|
||||
|
||||
export { server };
|
||||
|
|
|
|||
Loading…
Reference in a new issue