티스토리 뷰
자바 개발을 하다가 보면 스케줄러가 필요하다.
예전 서블릿 시절에는 crob를 사용해서 자바 프로그램(main)을 실행하였다.
참으로 기본적으로 많은 것을 알아야 되던 시절이였다.
지금도 crob를 사용하는 곳도 많다.
그런데 crob이 문제가 에러가 났을 때 로그 관리가 애매하다.
그런데 spring이 개발되고, log4j, common-logging, backlog 등 여러 로그 관리 툴이 개발되면서 개발자는 많이 편해졌다.
spring, log4j 등을 잘 알지 못하더라도 개발이 가능(?)해진 것이다.
그래서 spring, 스케줄러(crob)를 몰라도 자바에서 스케줄러가 되도록 만들어 보자.
우선 spring이 개발 중인 프로젝트에서 context-schedule.xml 이름으로 spring 설정파일을 생성한다. 굳이 context-schedule.xml가 아니여도 된다. web.xml에서 호출하는 이름으로 생성하면 된다.
context-schedule.xml
<?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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<context:component-scan base-package="kr.co.navxxx(개발된 프로그램의 패키지)" />
<task:annotation-driven />
</beans>
빨간색 표시가 된 구문들이 필요하다.
package kr.co.navxxx;
import java.util.List;
@Component
public class ClosureView {
static Logger logger = Logger.getLogger(ClosureView.class);
@Autowired
private ScheduleService scheduleService;
@Scheduled(cron="0 0 2 * * 2,3,4,5,6")
public void getClosureDate() throws Exception {
..............
closureView("342452452345");
......................
}
public CustomVO closureView(String spTransfer_No) {
String today = Util.getToday("yyyy-MM-dd");
.......
try {
..............
} catch(Exception e) {
e.printStackTrace();
}
return returnVO;
}
}
스케줄러 작업이 끝이 났다.
여기서 @Scheduled(cron="0 0 2 * * 2,3,4,5,6")에서는 프로그램이 실행되는 시간을 설정한다. 예전 crob과 설정 방법은 동일하다.
필드이름 | 허용 값 |
초(Seconds) | 0 ~ 59 |
분(Minutes) | 0 ~ 59 |
시(Hours) | 0 ~ 23 |
날(Day-of-month) | 1 ~ 31 |
달(Month) | 1 ~ 12 or JAN ~ DEC |
요일(Day-of-week) | 1 ~ 7 or SUN-SAT |
년도(Year) (선택가능) | 빈값, 1970 ~ 2099 |
표현식 | 설명 | 예시 |
* | 모든 수를 나타냄 | |
- | 값의 사이를 의미 | * 10-13 * * * * 10,11,12,13분에 동작함 |
, | 특정값 지칭 | * 10,11,13 * * * * 10,11,13분에 동작함 |
/ | 값의 증가를 표현 | * 0/5 * * * * 0분부터 시작해서 5분마다 동작 |
? | 특별한 값이 없음을 나타냄(day-of-month, day-of-week 필드만 사용) | |
L | 마지막 날을 나타냄(day-of-month, day-of-week 필드만 사용) |
[이클립스] - 이클립스(eclipse)에서 Camel기법 <-> Underscores기법 호환 플러그인
[이클립스] - 자바 프레임웍(Struts, Spring) 따라하기식 예제 사이트
[이클립스] - 이클립스 xxx.min.js 파일때문에 나타나는 프로젝트 에러표시 없애기
'프로그램' 카테고리의 다른 글
MSSQL 형변환 (0) | 2014.02.18 |
---|---|
iBatis에서 ‘#’과 ‘$’ Escape 하기 삽질 (0) | 2014.02.13 |
SWT 프로그램 기초 (0) | 2014.02.11 |
비주얼 베이직의 암호화 기법(?) (0) | 2014.02.11 |
다익스트라(Dijkstra) 알고리즘 (0) | 2014.02.08 |
- Total
- Today
- Yesterday
- 자바스크립트
- Let it Go
- jQuery Mobile
- 자바
- Tomcat
- MySQL
- 연말정산
- jstl
- 전자정부프레임웍
- 블로그 마케팅
- 쿼리
- 소프트웨어공학
- ibatis
- 가사
- 톰캣
- 프로그램
- OST
- 부산
- 블로그
- 겨울왕국
- 이클립스
- asp
- MSSQL
- base64
- jqm
- Eclipse
- java
- JSP
- jQuery
- 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |