본문 바로가기
SPRING

[SPRING] 스케줄러 (@Scheduled) 설정

by madinthe90 2023. 6. 1.
반응형

 

탈퇴한 회원의 정보는 1년만 가지고 있다가 파기하는 방식을 구현하기 위해 스프링 스케줄러를 사용하려한다.

 

1. XML 설정 (dispatcher-servlet.xml)

dispatcher-servlet에 추가해야하는 건 아래와 같다.

<beans....
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="....
    http://www.springframework.org/schema/task
    http://www.springframework.org/schema/task/spring-task.xsd"
    ... >
    
<task:annotation-driven/>

 

 

2. 스케줄러 구현

5초마다 실행되게 테스트

@Component
public class ScheduledTest {
	
	@Scheduled(fixedRate = 5000)	// 5초마다 동작
	public void test(){
		Date today = new Date();
		Locale currentLocale = new Locale("KOREAN", "KOREA");
		String pattern = "HHmmss";
		SimpleDateFormat formatter = new SimpleDateFormat(pattern, currentLocale);
		
		System.out.println("스케줄러 실행 (HHmmss) >> " + formatter.format(today));
    }
}

 

위와 같이 구현하면 아래 같은 결과가 콘솔에 찍힌다.

 

3. 매일 00시 마다 실행되는 스케줄러 구현

크론(Cron) 표현식을 사용해 스케줄러의 시기를 설정할 수 있다.

@Component
public class Scheduler {
	
	@Scheduled(cron = "0 0 0 * * *")	// 매일 00시 정각
	public void test() throws Exception {	
		System.out.println("00시가 되었습니다!");
	}
}

 

크론 표현식 참고

https://zamezzz.tistory.com/197

 

[Cron] 크론(cron) 표현식 정리

■ Cron (크론) cron이란? 유닉스 계열의 잡 스케줄러 ● Cron 표현식 - 필드 Cron 스케줄러의 정규 표현식입니다. 7개의 각 필드로 구성되어 있으며, 각 필드의 내용은 아래와 같습니다. 자세한 설명은

zamezzz.tistory.com

 

반응형

댓글