ref #7: [feat] add cleanup task

This commit is contained in:
Azamat 2026-04-02 13:27:44 +03:00
parent 33ebcb1a82
commit bae540427a
4 changed files with 113 additions and 8 deletions

View file

@ -84,7 +84,24 @@ class CleanupExpiredSandboxes:
self._logger = logger
def execute(self) -> list[SandboxSession]:
raise NotImplementedError
now = self._clock.now()
expired_sessions = self._repository.list_expired(now)
cleaned_sessions: list[SandboxSession] = []
for session in expired_sessions:
self._runtime.stop(session.container_id)
self._repository.delete(session.session_id)
cleaned_sessions.append(session)
self._logger.info(
'sandbox_cleaned',
attrs={
'chat_id': session.chat_id,
'session_id': session.session_id,
'container_id': session.container_id,
},
)
return cleaned_sessions
def _new_session_id() -> str: