spring QZ 퀘 스 트 통합
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 촉발
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.