📃 요약
Spring Scheduler 간단 예제를 진행해 보도록 하겠습니다.
간단 사용으로 주기적으로 실행하고 싶을 때 알림 서비스 등에 응용하면 되겠습니다.
벡엔드만 구현하고, Spring Boot 를 사용합니다.
요소 기술 :
– 벡엔드 : Spring Boot & JPA
결과 화면 : 없음
프로젝트 탐색기 : String Boot
스케줄러 로직 구현 절차
- 1) @EnableScheduling 를 SchedulerApplication 클래스에 추가 (스케줄링 시작)
- 2) 서비스 클래스의 특정 함수명 위에 @Scheduled(fixedDelay = 1/1000초)
- 3) 함수가 주기적으로 실행됨
- “스케줄 예제입니다. ” 문자열이 콘솔 화면에 2초 간격으로 나타납니다.
📃 기술 구현
스펙 :
- jdk 17 - spring boot 3.x - intellij IDEA & gradle - logging tool : logback
스케줄러 서비스 클래스
– SchedulerService.java
package org.example.schedulerapp.services; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; /** * @fileName : SchedulerService * @author : GGG * @since : 2024-05-30 * description : 스케줄러 샘플 예제 * @Scheduled(fixedDelay = 1000) * => 1초 마다 실행 * * 속성 * - fixedDelay : 작업을 마친 후부터 특정 시간마다 실행 * - initialDelay : 초기 지연시간 설정 * - cron : cron 표기법 사용 가능 * ex) @Scheduled(cron = "* * * * *") * => 매일 매초 실행됨 * * * 스케줄러 제한사항 * 1) 스케줄러는 IOC 대상만 가능함 * 2) 메소드의 리턴타입은 void * 3) 메소드의 매개변수 사용불가 * ex) void 함수명(){ 스케줄실행문; } */ @Slf4j @Service public class SchedulerService { @Scheduled(fixedDelay = 2000) public void run() { log.debug("스케줄 예제입니다."); } }
📃 결론
Spring Boot 에서 @Scheduled 를 이용해서 주기적으로 함수를 실행하는 예제를 살펴보았습니다.
Spring Boot 에서 간단하게 주기적으로 실행되는 함수를 제작할 때 참고하시기 바랍니다.
Spring Boot Scheduler 에 관심 있으시다면 Source 는 아래에서 찾을 수 있습니다.
- Github 주소 : https://github.com/KangTaeGyung/scheduler-app
감사합니다.