Spring設定quartzスケジューリングタスク
4906 ワード
文章の起源:http://www.cnblogs.com/kay/archive/2007/11/02/947372.html
環境バージョン:
spring 4.0.0.RELEASE及び関連Jarカバン
quartz 1.5.2
SpringにおけるQuartzの配置
Quartzは強力な企業レベルのタスクスケジュールの枠組みであり、SpringでQuartzを継承し、簡略化しました.次に、SpringでQuartzをどのように配置するかを見てみます.まず、スケジュールされたクラスを書きます.
package com.kay.quartz;
public class QuartzJob {
public void work() {
System.out.println("Quartz !!!");
}
}
Springのプロファイル(他のファイルをappication Contact.xmlに追加する必要があります):<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- (quartzJob com.kay.quartz.QuartzJob ) -->
<bean id="quartzJob" class="com.kay.quartz.QuartzJob"></bean>
<!-- -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- (targetObject ,quartzJob ) -->
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<!-- (targetMethod ,work ) -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- (jobtask ) -->
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron , 10 , 5 -->
<property name="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>
<!-- lazy-init='false' -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- -->
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
</beans>
テストプログラム: package com.kay.quartz;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("Test start.");
ApplicationContext context = new ClassPathXmlApplicationContext(
"quartz-config.xml");
// startQuertz bean lazy-init false
// context.getBean("startQuertz");
System.out.print("Test end..");
}
}
私たちは4 jのプロファイルをsrcディレクトリに入れて、mainクラスを起動すればいいです. Cron式には以下の7つのフィールドがあります.
秒(0~59)
分(0~59)
時間(0~23)
日(月または月内日付)(0~31日までですが、あなたの月の日数を考慮してください.)
月(0~11)
日曜日(日曜日または日曜日)(1~7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
年(1970-2099)
特殊文字
クロントリガーは一連の特殊文字を利用して、次のように示します.
表現の意味 「0 0 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-5 14*?」は毎日午後2時から午後2時05分の間に1分間ごとにトリガします. 「0 10,44 14?3 WED」は毎年3月の水曜日の午後2時10分と2時44分にトリガされます. 「0 15?10?*MON-FRI」は月曜日から金曜日までの午前10時15分にトリガされます. 毎月15日午前10時15分トリガ 毎月最後の日の午前10時15分トリガ 「0 15 10?*6 L」毎月最後の金曜日午前10時15分トリガ 「0 15?10?*6 L 2002-2005」2002年から2005年までの毎月最後の金曜日の午前10時15分にトリガします. 毎月の第三金曜日午前10時15分トリガ 「0 6**」は毎朝6時です.
「0*/2**」は二時間ごとに
「0 23-7/2、8**」夜11時から朝8時までの間は2時間毎に朝8時までです.
「0 11 4*1-3」毎月の4日と毎週の月曜日から水曜日の午前11時です.
「0 4 1*」1月1日午前4時
以上、仕事は忘れます.