spring QZ 퀘 스 트 통합

5110 단어 springqzTask

1  QZ 퀘 스 트 사용
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<!--     -->
	<bean name="myTask" class="com.ambow.TimerTaskTest.QazTimerTaskTest"></bean>
    <!--                 -->
	<bean name="myTaskMethodInvoking" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="myTask" />
		<property name="targetMethod" value="run" />
	</bean>

	<!--                          -->
	<bean name="myTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="myTaskMethodInvoking"/>
		</property>
		<property name="cronExpression">
			<!--       ,           -->
			<value>0 0/1 * * * ?</value>
		</property>
	</bean>
	
	<!--          -->
	<bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<!--                -->
				<ref bean="myTaskTrigger" />
			</list>
		</property>
	</bean>
</beans>

 
2  작업 수행 클래스
public class QazTimerTaskTest   implements Runnable {

	@Override
	public void run() {
		System.out.println( "  QazTimerTaskTest      。。。。 ");	
	} 
}

 
  3. 이 작업 의 xml 를 spring 프로필 에 불 러 오 거나 주 프로필 에 도입 하면 됩 니 다. 예 를 들 어 < import resource = "qz. xml" / >
 
 
 4 시간 형식
하나의 Quartz 의 CronTrigger 표현 식 은 7 개의 하위 표현 식 으로 나 뉘 는데 그 중에서 각 항목 은 빈 칸 으로 구분 되 어 있 습 니 다. 왼쪽 에서 오른쪽으로 각각 초, 분, 시, 달의 어느 날, 달, 요일 의 어느 날, 년 입 니 다.그 중 해 는 필수 가 아니다. 즉, 어떤 표현 식 이 든 최소 6 가지 가 필요 하 다 는 것 이다! 
예: 0, 12? *WED 는 매주 수요일 12 시 에 실행 된다 고 밝 혔 습 니 다. 여 기 는 '년' 이 없습니다! 
 
 
필드 이름 (항목) 반드시 값 범위 특수 문자 
초 는 0 - 59. , - * /  
0 점. - 59 점. , - * /  
시 0 - 23 , - * /  
월 의 어느 날 1 - 31 입 니 다. , - * ? / L W  
월 은 1 - 12 or JAN - DEC 입 니 다. , - * /  
요일 의 어느 날 은 1 - 7 or SUN - SAT 입 니 다. , - * ? / L #  
1970 - 2099 , - * / 
 
"0 / 30 8 - 10 5, 20 *?" 는 "매달 5 일과 20 일의 8: 00, 8: 30, 9: 00, 9: 30, 10: 00, 10: 30" 을 나타 낸다. 
문자 설명: 
... 과 '표 식', '양쪽 의 값 은 모두 실행 해 야 하 는 시간 입 니 다. 예 를 들 어 상기' 5, 20 ', 매달 5 일과 20 일 입 니 다. 
-: 값 의 범 위 를 나타 낸다. 예 를 들 어 상례 인 '8 - 10' 은 8 시 부터 10 시 까지 8 시 와 10 시 를 포함한다. 
*: 표 식 의 임 의 합 법 적 인 값, 예 를 들 어 상례 '*' 는 달의 필드 이기 때문에 1 - 12 의 임 의 값 을 대표 하기 때문에 상례 는 '매달' 을 가리킨다. 
/: 증 량, 예 를 들 어 0 분부 터 30 분 마다 값 을 찾 는 것 을 말한다.'5 / 8' 로 바 뀌 면 5 시 부터 8 분 마다 값 을 뽑 는 거 예요. 8: 05, 8: 13, 8: 21, 8: 29 등등. 
?:값 을 지정 하지 않 는 다 는 것 은 '나 도 모른다' 는 뜻 으로 '달의 어느 날, 요일 의 어느 날' 항목 에 만 나타 날 수 있다.어떤 상황 에서 쓰 죠?예 를 들 어 지난 번 에 지 정 된 값 이 월요일 이 라면 4 월 5 일이 월요일 이 아 닌 경우 가 발생 할 수 있 습 니 다. 여 기 는 대응 하지 않 고 충돌 이 있 기 때문에 '?' 로 지 정 했 습 니 다. 즉, 저도 무슨 요일 인지 모 르 겠 습 니 다. 5 일과 20 일이 면 됩 니 다. 무슨 요일 이 든 상관 하지 않 겠 습 니 다! 
L: 마지막, last 의 뜻 은 '달의 어느 날, 요일 의 어느 날' 항목 에 만 나타 날 수 있 습 니 다.현재 달 이나 현재 주의 마지막 날 을 나타 내 며 주의 하 는 것 은 토요일 이다. 
W: 달 중에서 지 정 된 날짜 에 가장 가 까 운 보통 날 (월요일 부터 금요일) 은 '달의 어느 날' 에 만 나타 날 수 있 습 니 다. 예 를 들 어 '15W' 는 현재 달 이 15 일 에 가장 가 까 운 보통 날 입 니 다. 만약 에 그 달 15 일이 수요일 이면 수요일 입 니 다. 만약 에 그 달 15 일이 토요일 이 라면 어제 이자 금요일 입 니 다. 만약 에 그 달 15 일이 일요일 이 라면 다음날 인 월요일 입 니 다. 
\ #: 현재 달의 N 번 째 주 X 일 은 '요일 의 어느 날' 항목 에 만 나타 납 니 다.예 를 들 어 '6 \ # 3' 은 현재 달의 셋째 금요일, '1 - 7', 1 = 일요일, 2 = 월요일 등 을 주의해 야 한 다 는 것 이다. 
 
5 가지 예
"0, 12 * *?" 매일 낮 12 시 에 터치 합 니 다. "0 15 10? *" 매일 오전 10: 15 촉발 "0 15 10 *?" 매일 오전 10: 15 촉발 "0 15 10 *? *" 매일 오전 10: 15 촉발 "0 15 10 *? 2005" 2005 년 의 매일 오전 10: 15 촉발 "0 * 14 * *?" 매일 오후 2 시 부터 오후 2: 59 까지 1 분 마다 촉발 "0 / 5 14 *?" 매일 오후 2 시 부터 오후 2 시 55 분 까지 5 분 마다 촉발 "0 / 5 14, 18 * *?" 매일 오후 2 시 부터 2: 55 사이 와 오후 6 시 부터 6: 55 사이 에 5 분 마다 촉발 합 니 다. "0 0 - 5 14 *?" 매일 오후 2 시 부터 오후 2 시 까지 1 분 마다 터치 합 니 다. "0, 10, 44, 14? 3 WED" 매년 3 월 수요일 오후 2: 10 과 2: 44 촉발 '0, 15, 10? * MON - FRI' 월요일 부터 금요일 까지 오전 10: 15 트리거 "0 15 10 15 *?" 매월 15 일 오전 10: 15 촉발 "0 15 10 L *?" 매월 마지막 날 오전 10: 15 촉발 "0 15 10? * 6L" 매월 마지막 금요일 오전 10: 15 촉발 "0 15 10? * 6L 2002 - 2005" 2002 년 부터 2005 년 까지 매월 마지막 금요일 오전 10: 15 촉발 "0 15 10? * 6 \ # 3" 매월 셋째 금요일 오전 10: 15 촉발 
 
 
 
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기