SPING MVC定期的なタスクセット

  プロジェクトタスクのタイミングで使用し、レコードに関するエッセイを書きます。

  まず、BeanはSpring構成ファイルapplicationContext.xmlをファイルにラベルを付ける追加

xmlns:タスク= "http://www.springframework.org/schema/task" 
http://www.springframework.org/schema/task 
http://www.springframework.org/schema/task/spring-task- 4.1.xsd

  現在、私はスケジュールされたタスクを使用するには、2つの方法があります理解してください。

  設定ファイルの1.宣言コール定期タスク

  最初の文ではapplicationContext.xmlをファイルには、Beanと呼ばれます

< ビーンID = "quartzController" クラス= "com.bizdata.common.socket.web.resource.QuartzTaskController" > </ >

  次のメソッドを呼び出すためのJavaコードと

輸入java.text.SimpleDateFormatの。
輸入java.util.Date; 

輸入org.springframework.stereotype.Controller; 

@Controller 
パブリック クラスQuartzTaskController { 
    
    公共 ボイドSYSTIME(){ 
        てSimpleDateFormat SDF = 新しいてSimpleDateFormatを( "YYYY-MM-DD HH:MM:SS" )。
        System.out.println(sdf.format(新しい日付())); 
    } 

}

  そして、オブジェクトのメソッド呼び出しを宣言し、オブジェクトを呼び出します

<! - コール・オブジェクトの定義と呼び出しオブジェクトメソッド- > 
    < ID = "myJobDetailA" 
          クラス= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > 
        < プロパティ= "対象物体" REF = "quartzController" >   < ! - 実行タイミングクラス- > 
        </ プロパティ> 
        < プロパティ= "targetMethod" = "SYSTIME" > </ プロパティ>    <! - プロセスの実行タイミング- > 
        <プロパティ=「同時」=「false」に /> 
        <! - タスクの同時実行を許可するかどうか。それは、スレッドを意味し、falseの場合は前処理された後まで待ってから、新しいスレッドを開始しなければならない- > 
    </ > 
    <! - トリガ時間を定義します- > 
    < 上記ID =「myTriggersA」
          クラス=「ORGを.springframework.scheduling.quartz.CronTriggerFactoryBean " > 
        < プロパティ=" jobDetail " REF =" myJobDetailA " > 
        </ プロパティ> 
        < プロパティ=" cronExpression " > 
            < > 0 00 6 * *?</ >    
            <! - 時間サイズの大小順、秒、秒、分、時間、日、月、年の順*いずれかから始まりますか?アンリミテッド- > 
        </ プロパティ> 
    </ >

  上記のタスク6:00毎朝コールを完了させるタイミングを設定します。

  (使いやすさ、推奨される方法は、構成を大幅に節約します)を呼び出す2.ノート

  applicationContext.xmlをファイルに自動的にスキャンBeanは、宣言しました:

<! - 豆のサポート注入オープンコメント- > 
    < コンテキスト:注釈-config設定/> 
    < コンテキスト:コンポーネント・スキャンのためのベース・パッケージ変更= "com.bizdata"  />

  一方、注釈は、コンフィギュレーションの呼び出しを追加します

<タスク:アノテーション・ドリブン/> <! - タイマーコメント- >

  Javaコード

  @Scheduled(クーロン= "0 0 22 * *?" パブリック ブールgetDataCenterData(){ 
        カレンダーカレンダー = Calendar.getInstance(); 
        calendar.add(Calendar.DATE、 -1 )。
        リターンgetDataCenterData(calendar.getTime()); 
    }

  タスクの完了の時期、夜10時毎日コール。

  上記の構成を使用してノートやり方は、あなたがスケジュールされたタスクのログを呼び出すときに例外を出力しますが、使用には影響しません、あなたはフィルタリングが可能log4j.propertiesファイルのログレベルでそれを追加することができます。

#タイマーはレベルログ
log4j.logger.org.springframework.scheduling = INFOを

 

  

おすすめ

転載: www.cnblogs.com/guaniu2750/p/11953338.html