+ 00 00 0000

Have any Questions?

Springboot scheduler sample

Springboot scheduler sample

📃 요약

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 는 아래에서 찾을 수 있습니다.

감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다