SpringにおけるQuartzの配置使用


Quartzは強力な企業レベルのタスクスケジュールの枠組みであり、SpringでQuartzを継承し、簡略化しました.次にSpringでQuartzをどのように配置するかを見てみます.
まず、スケジュールされたクラスを書きます.
package com.kay.quartz;
public class QuartzJob
{

    public void work()
    {
    System.out.println("Quartz     !!!");
    }
}
Springのプロファイル:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>    
        <!--         -->
        <bean id="quartzJob" class="com.kay.quartz.QuartzJob"></bean>
        <!--                -->
        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!--      -->
            <property name="targetObject">
                <ref bean="quartzJob"/>
            </property>
            <!--         -->
            <property name="targetMethod">
                <value>work</value>
            </property>
        </bean>
        <!--        -->
        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail">
                <ref bean="jobtask"/>
            </property>
            <!-- cron    -->
            <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つのフィールドがあります.
秒ポイント時間月内日付月週間以内の日付年(オプションフィールド)特殊文字
クロントリガーは一連の特殊文字を利用して、次のように示します.
バックスラッシュ(/)文字は増分値を表します.例えば、秒フィールドの「5/15」は、5秒目から15秒ごとに1回始まることを表します.疑問符(?)文字とアルファベットL文字は、月の日付と週の日付フィールドでのみ使用できます.疑問符はこのフィールドに具体的な値が含まれていないことを示しています.したがって、月内の日付を指定すると、週内の日付フィールドに「?」を挿入しても良いです.L文字は last の略語.月の日付フィールドに置いて、その月の最後の日に実行する予定です.週間内の日付フィールドにおいて、「L」が単独で存在すると「7」に等しくなります.さもなければ、その月の日付の最後の例を表します.ですから、「0 L」は当月の最後の日曜日に実施するという意味です.月の日付フィールドの文字(W)は、指定値に最も近い平日に実行されます.「1 W」を月内日付フィールドに置き、実行を当月の最初の勤務日内にすることを示します.井号(⻠)の文字は、所与の月に指定された具体的な平日の例です.「MON铉2」を週間内の日付フィールドに置き、タスクを当月の第二月曜日に配置することを示します.アスタリスク(*)の文字は、任意の可能な値を受け入れることができるフィールドを表します.フィールドで許可された値の特殊文字 
秒0-59、-*/ 
0-59、-*/ 
時間0-23、-*/ 
日付は1-31、-*?/L W 
月1-12またはJAN-DEC、*/ 
月曜日1-7またはSUN-AT、-*?/L. 
年(オプション)を残して、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分トリガ  毎朝6時です
0 6***
二時間ごとに
0*/2***  夜11時から朝8時までの間は二時間毎に朝8時です.
0 23-7/2、8****
毎月の4日と毎週の月曜日から水曜日の朝11時です.
0 11 4*1-3  1月1日午前4時
0 4 1*
詳細:
http://www.ibm.com/developerworks/cn/java/j-quartz/index.html
http://www.javaeye.com/topic/117244
原文の住所:http://www.cnblogs.com/kay/archive/2007/11/02/947372.html