반응형
일정시간마다 DB를 조회해서 카카오톡 알림을 줘야하는 경우
어떻게 처리를 해야하나 찾아보다가 Scheduler로 처리하면 되겠다 싶었다.
생각보다 처리는 간단했다.
제일 먼저 bean에 xmls와 schema를 추가해줘야한다.
각각의 프로젝트에 따라 이 설정을 해준곳이 context인 경우도 있고 dispatcher-servlet인 경우도 있으니 이는 상황에 따라 넣어주면 될것 같다.
/* Scheduler를 사용하기 위한 xmls */
xmlns:task="http://www.springframework.org/schema/task"
/* schema */
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
를 추가해 주고 dispatcher-servlet에 몇몇 설정을 해주면 된다.
<!-- Scheduler 파일이 존재하는 Package 설정 -->
<context:component-scan base-package="파일이 존재하는 패키지 경로" />
<!-- Schedule을 설정할 때 Cron을 사용하기 위해 필요한 Tag -->
<task:scheduler id="jobScheduler" pool-size="10" />
<task:annotation-driven scheduler="jobScheduler" />
이렇게 설정한 뒤에는 위 코드에서 base-pakage 경로에 Scheduler 클래스를 만들어주면 된다.
public class Scheduler {
@Scheduled(cron = "초 분 시 일 월 요일")
public void schedulerMethod() {
}
}
여기서 주의할 점은 Scheduler로 수행되는 Method는 파라미터를 받을 수 없다.
그 점만 주의하고 위 메서드 안에서 일정시간에 수행시키고 싶은 로직들을 넣으면 된다.
반응형
'Spring' 카테고리의 다른 글
| Cannot find DTD ... log4j 에러 (0) | 2024.02.02 |
|---|---|
| Property 파일 유니코드로 보이는 현상 및 'downloading from external resources is disabled' 에러 (0) | 2024.02.02 |
| VO에서 Map 변환 메서드 (Apache Util) (2) | 2023.08.31 |
| @ModelAttribute 그리고 @RequestParam (0) | 2023.08.24 |
| @RequestMapping 이란? (0) | 2023.08.24 |