package com.sshmanager.config; import com.sshmanager.controller.SftpController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class SftpSessionCleanupTask { private static final Logger log = LoggerFactory.getLogger(SftpSessionCleanupTask.class); @Value("${sshmanager.sftp-session-timeout-minutes:30}") private int sessionTimeoutMinutes; @Value("${sshmanager.transfer-task-timeout-minutes:30}") private int transferTaskTimeoutMinutes; private final SftpController sftpController; public SftpSessionCleanupTask(SftpController sftpController) { this.sftpController = sftpController; } @Scheduled(fixedDelay = 60000) public void cleanupIdleSessions() { log.debug("Running SFTP session cleanup task"); sftpController.cleanupExpiredSessions(sessionTimeoutMinutes); sftpController.cleanupExpiredTransferTasks(transferTaskTimeoutMinutes); } }