SpringでのQutarzの構成


まず、スケジュールするワーククラスを定義します.
public class Task{
    public void work() {
        System.out.println("Quartz     !");
    }
}

残りはSpringプロファイルです.
<beans>  
    <!--         -->  
    <bean id="quartzJob" class="test.Task"></bean>  
    <!--                -->  
    <bean id="jobtask"  
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
        <!--      -->  
        <property name="targetObject" ref="quartzJob" /> 
        <!--         -->  
        <property name="targetMethod">  
            <value>work</value>  
        </property>  
    </bean>  
    <!--        -->  
    <bean id="doTime"  
        class="org.springframework.scheduling.quartz.CronTriggerBean">  
        <property name="jobDetail" ref="jobtask" />  
        <!-- 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>

corn式について:
1つのCron-式は、6~7個のフィールドからなるスペースで区切られた文字列で、6個のフィールドが必要で、1つはオプションです.フィールド名で許可されている値で許可されている特殊文字秒0-59、-*/分0-59、-*/時間0-23、-*/日1-31、 - * ?/L WC月1-12 or JAN-DEC、-*/曜日1-7 or SUN-SAT、-*?/L C#年(オプションフィールド)empty,1970-2099,-*/'*'文字はすべてのフィールドで使用でき、「分」フィールドで「*」に設定すると「毎分」の意味を表す.'?文字は「日」フィールドと「曜日」フィールドで使用できます.「不明な値」を指定するために使用します.これは、この2つのフィールドのいずれかの値を指定する必要がある場合に使用されます.後の例ではその意味がわかります.'-'文字は、「時間」フィールドで「10-12」に設定して「10時から12時まで」を表す値の範囲を指定するために使用されます.文字は数個の値を指定します.例えば「曜日」フィールドに「MON,WED,FRI」を設定すると「the days Monday,Wednesday,and Friday」を表す.'/'文字は、1つの値の増加幅を指定するために使用される.たとえば、[秒](Seconds)フィールドで[0/15](0/15)に設定すると、[0,15,30,45秒](0,15,30,45秒)になります.「5/15」は「第5,20,35,50」を表す.'/'の前に「*」を付ける文字は、指定が0秒から始まることに相当する.各フィールドには、開始または終了可能な一連の数値があります.秒フィールドと分フィールドの値は0~59、時間フィールドの値は0~23、日フィールドの値は0~31、月フィールドの値は1~12です.「/」フィールドは、許可された数値範囲内で「n番目」の値を開始するのに役立つだけです.したがって、「月」フィールドでは「7/6」は「6ヶ月ごと」ではなく7月が開かれることを示すだけで、微妙な違いに注意してください.L'文字は、「日」と「曜日」の2つのフィールドで使用できます.「last」の略ですが、この2つのフィールドには異なる意味があります.たとえば、「日」フィールドの「L」は、「1か月の最後の日」を表します.1月は31日で、2月は28日(閏年ではありません)です.「曜日」フィールドでは、「7」or「SAT」を簡単に表しますが、「曜日」フィールドで使用するときにある数字に続く場合は、「月の最後の週」を表します.×「-たとえば、「6 L」は「この月の最後の金曜日」を表します.「L」オプションを使用する場合、決定されたリストまたは範囲を指定することは重要です.そうしないと、結果が混乱します.「W」は「日」フィールドに使用できます.指定された日付の最も近い営業日(月曜日から金曜日)を指定します.たとえば、「日」フィールドを「15 W」に設定すると、「この月15日に最も近い営業日」を意味します.「です.したがって、15日が土曜日の場合、トリガーは14日と金曜日に呼び出されます.15日が日曜日の場合、トリガーは16日と月曜日にトリガーされます.15日が火曜日の場合、その日にトリガーされます.ただし、「日」フィールドを「1 W」に設定すると「1番は土曜日で、トリガーは来週1日、つまり当月の3日にトリガーされます.それは当月の値の範囲の境界を越えないからです.'W'文字は、一連の値ではなく、「日」フィールドの値が個別の日である場合にのみ使用できます.'L'と'W'は、「日」フィールドを組み合わせて「LW」と表し、「その月の最後の平日」を意味します.'#'文字は「曜日」に使用できます.で行ないます.この文字は「この月の第数週目×”,例えば「6#3」は、その月の第3金曜日を表す(6は金曜日を表し、「#3」はその月の第3金曜日を表す).例えば、「2#1」=は、その月の最初の月曜日を表し、「4#5」=その月の5番目の水曜日を表す.注意「#5」を指定した場合、今月は5週目がありません.×”,今月はトリガーされません.C'文字は、「calendar」の略である「日」および「曜日」フィールドに使用できます.これは、関連するカレンダに基づいて計算された値(ある場合)を表します.関連するカレンダがない場合は、すべてのカレンダを含むのと同じです.「日」フィールドの値が「5 C」の場合は、「カレンダの最初の日または5日以降」、「曜日」フィールドの値が「1 C」の場合は、「カレンダの最初の日または日曜日以降」を表します.「月」フィールドおよび「曜日」フィールドでは、合法的な文字は大文字と小文字に敏感ではありません.式の意味は「0 0 12*?」です.毎日昼12時に「0 15 10?*」をトリガーし、毎朝10:15に「0 15 10*?」をトリガーします.毎朝10:15に「0 15 10*?*」がトリガーされ、毎朝10:15に「0 15 10*??」2005年の毎朝10:15に「0*14*?」がトリガーされます.毎日午後2時から2時59分まで毎分「0 0 0/5 14*?」毎日午後2時から2時55分まで5分ごとに「0 0 0/5 14,18*?」毎日の午後2時から2時55分までと6時から6時55分までの2つの時間帯に5分ごとに「0 0-5 14*?」をトリガーします.毎日14:00から14:05まで毎分1回「0 10,44 14?3 WED」3月の毎週3の14:10と14:44に「0 15 10?*MON-FRI」が毎週月曜日、火曜日、水曜日、木曜日、金曜日の10:15に「0 15 10 15*?毎月15日の10:15に「0 15 10 L*?」毎月の最終日の10:15トリガ「0 15 10?*6 L」毎月最終日の金曜日の10:15トリガ「0 15 10?*6 L」毎月最終日の金曜日の10:15トリガ「0 15 10?*6 L 2002-2005」2002年から2005年までの毎月最終日の金曜日の10:15トリガ「0 15 10?*6 3」毎月第3金曜日の10:15トリガ