spring 3では注釈を用いてタスクスケジュールを行う.

9389 ワード

以上の内容はSpring 3.0.5バージョンに基づいて運行しています.参考文献はspring-frame ebook-reference-3.05.pdfです.
 
spring 3におけるtaskの名前空間.部分的にquartzを置換し、注釈方式をサポートすることができます.しかし、より複雑なタスクスケジュールが使用される場合.それともquartzを使うのがおすすめです.タスクスケジュールにtaskとquartzを使用した方法について、以下において距離を設定します.
  • 注釈を用いてスケジュールタスクを実行する
  • .
    タスクのインスタンスを作成します.
     
    view plin
    copy to clipboard
    print

    *********************************************************************

    *TestJob.java

    ****の所有、
    *法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
    *@copyright Copyright:2000-2011
    *@creator徐沢宇

    *@create-time 2011-6-27午後11:51:16
    *@revision$Id:*.
    ******************************************************************
    package comp.alcor.aerie.quartz;
    import org.slif 4 j.ロギング;
    import org.sf 4 j.ロギングFactory;
    import org.springframe ewark.scheduling.annotations.Schduled
    import org.springframe ework.stereotype.Service
    @サービス
    public class TestJob{
    /**
    *ロガーfor this class
    */
    prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
    @Schduled(fixedDelay=1000)
    public void work()
    {
    if(logger.isDebugEnbaled){
    logger.debug(「work()-start」)/$NON-NLS-1
    )
    logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
    if(logger.isDebugEnbaled){
    logger.debug(「work()-end」)/$NON-NLS-1
    )
    )
    )
     
    注意その中の@Schduledラベル
    springを設定するApple Contingt.xml
     
    view plin
    copy to clipboard
    print

    <beans xmlns=”http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance「
    xmlns:context="http://www.springframework.org/schema/context「
    xmlns:task="http://www.springframework.org/schema/task「
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/fex
    http://www.springframework.org/schema/fex/spring-fex-1.5.xsd
    http://www.springframework.org/schema/task
    http://www.springframework.org/schema/task/spring-task-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">>


     
    注意:その中にxmlnsが入っています.  xmlns:task="http://www.springframework.org/schema/task「です.xsi:schemaLocationに参加する  http://www.springframework.org/schema/task        http://www.springframework.org/schema/task/spring-task-3.0.xsd .設定に追加
       
    webアプリケーションを開発したらweb.xmlに入れます.
    <listener>        org.springframe ewek.web.co.ntxt.context Loader Listener
    context起動時に、自動スキャンと装備というスケジュールされたタスクができます.
  • は注釈を使用せず、構成によってタスク
  • をスケジュールする.
    タスクのインスタンスを作成
     
    view plin
    copy to clipboard
    print

    *********************************************************************

    *TestJob.java

    ****の所有、
    *法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
    *@copyright Copyright:2000-2011
    *@creator徐沢宇

    *@create-time 2011-6-27午後11:51:16
    *@revision$Id:*.
    ******************************************************************
    package comp.alcor.aerie.quartz;
    import org.slif 4 j.ロギング;
    import org.sf 4 j.ロギングFactory;
    import org.springframe ewark.scheduling.annotations.Schduled
    import org.springframe ework.stereotype.Service
    @サービス
    public class TestJob{
    /**
    *ロガーfor this class
    */
    prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
    public void work()
    {
    if(logger.isDebugEnbaled){
    logger.debug(「work()-start」)/$NON-NLS-1
    )
    logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
    if(logger.isDebugEnbaled){
    logger.debug(「work()-end」)/$NON-NLS-1
    )
    )
    )
     
    注意:ここwork方法には@Schduledの注釈がありません.
     
    Application Contect.xmlにスケジュールを入れる
     
    view plin
    copy to clipboard
    print

     
    <task:scheduled-task>
    <task:scheduled ref=「testJob」method=「work」cron=「1/3*2-23*?」/>

     
     
     
    クローン式
    原文の由来は:
    http://biaoming.iteye.com/blog/39532
    一つのクロン表現は、少なくとも6つ(7つの可能性もある)のスペースで区切られた時間要素があります.
     
     
    順を追って
    秒(0~59)
    分(0~59)
    時間(0~23)
    日(月)(0~31日までですが、あなたの月の日数を考慮してください.)
    月(0~11)
    日(日)(1~7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
    7.年(1970-2099)の各要素は、6のような値、連続区間(9-12)、間隔時間(8-18/4)、リスト(1,3,5)、ワイルドカードであることができます.「月の日付」と「日曜日の日付」の2つの要素が互いに反発するので、どちらに設定しますか?
    0 10,14,16*毎日午前10時、午後2時、4時0/30 9-17**?   朝9時から夜5時までの勤務時間は30分0時12分です.WEDは毎週水曜日の昼12時を表しています. 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 0/5 14 * * ?" 毎日午後2時から午後2時55分の間に5分間ごとにトリガします. "0 0/5 14,18 * * ?" 毎日午後2時から2時55分の間と午後6時から6時55分の間に5分間ごとにトリガします. "0 0-5 14 * * ?" 毎日午後2時から午後2時5分の間に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 ? * 6 L" 毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6 L 2002-2005" 2002年から2005年までの毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6〓〓3″ 毎月の第三金曜日午前10時15分トリガ
    一部のサブ表現は範囲またはリストを含むことができます.
    例えば、サブ表現(日(日)は「MON-FRI」、「MON,WED,FRI」、「MON-WED,SAT」とすることができます.
    「*」の文字はすべての可能な値を表します.
    したがって、「*」は毎月の意味をサブ表現(月)に表し、「*」はサブ表現(日(日)に曜日を表します.
     
    「/」の文字は、数値の増分を指定します.例えば、サブ表現(分)の「0/15」は、0分目から15分ごとに開始されます.         サブ表現(分)の「3/20」は、3分目から20分(3,23,43)ごとの意味が同じです.「?」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.2つのサブ表現のうちの1つに値が指定されていないことを示しています.衝突を避けるためには、他のサブ表現の値を設定する必要があります.「?」  「L」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.単語「last」の略語ですが、2つのサブ表現では意味が違います.1ヶ月の最後の日を表します.「L」は1週間の最後の日を表します.つまり、SATは「L」の場合、1ヶ月の最後の日を表します.具体的な内容がある前に、「6 L」は今月の最後から6日目を意味します.「FRIL」は今月の金曜日を表します.「L」パラメータを使う時はリストや範囲を指定しないでください.これは問題になります.   
    フィールド  許容値  許可された特殊文字   0-59   , - * /   0-59   , - * /   0-23   , - * /   1-31   , - * ? / L W C   1-12  JAN-DEC   , - * /   1-7  SUN-SAT   , - * ? / L C # ( )   , 1970-2099   , - * /