diff --git a/src/main/java/org/ezcode/codetest/infrastructure/scheduler/StompKeepAliveScheduler.java b/src/main/java/org/ezcode/codetest/infrastructure/scheduler/StompKeepAliveScheduler.java new file mode 100644 index 00000000..5c79fa8f --- /dev/null +++ b/src/main/java/org/ezcode/codetest/infrastructure/scheduler/StompKeepAliveScheduler.java @@ -0,0 +1,21 @@ +package org.ezcode.codetest.infrastructure.scheduler; + +import org.springframework.messaging.simp.SimpMessagingTemplate; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class StompKeepAliveScheduler { + + private final SimpMessagingTemplate messagingTemplate; + + public StompKeepAliveScheduler(SimpMessagingTemplate messagingTemplate) { + this.messagingTemplate = messagingTemplate; + } + + // 15초마다 실행 (ActiveMQ TTL인 20초보다 짧게 설정) + @Scheduled(fixedDelay = 15000) + public void sendKeepAliveMessage() { + this.messagingTemplate.convertAndSend("/topic/keep-alive", "ping"); + } +}