Spring Boot 라면 @EnableScheduling 을 붙여서 기본 셋팅이 가능한 것 같은데,
일반 Spring 에서는 아래와 같은 셋팅을 추가해 주어야 한다.
thread pooling 관련 설정을 하기도 하는 것 같은데, 여기서는 가장 심플한 구성을 사용하기로 한다.
spring context xml ('task' 가 포인트)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- @Scheduled 사용을 위한 설정 -->
<task:annotation-driven />
</beans>
service method (많이 쓰는 cron 형식으로)
@Slf4j
@Service
public class SapService {
@Scheduled(cron = "0 0 5 * * *") // 매일 오전 5시 정각
public void copySapData(){
log.debug("## copySapData called !!");
}
}
- 스케쥴러 cron 형식