ホームページ  >  記事  >  Java  >  Java での Spring スケジュールされたタスクの実装コード

Java での Spring スケジュールされたタスクの実装コード

高洛峰
高洛峰オリジナル
2017-02-07 15:15:541322ブラウズ

りー

2.次に、春に設定します:

import org.apache.log4j.*;
public class TaskJob {
       public static Logger log = Logger
                     .getLogger(TaskJob.class);
       public void SayHello() {
              // TODO Auto-generated method stub
              try {
                     log.info("处理任务开始>........");
                     // 业务逻辑代码调用
                     System.out.println("时间[" + new java.util.Date().toLocaleString()
                                   + "]----->大家好啊!");
                     log.info("处理任务结束!");
              } catch (Exception e) {
                     log.error("处理任务出现异常", e);
              }
       }
}

3.実行クラスをテストするには、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 name="taskJob" class="util.TaskJob" />
    <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject">
           <ref bean="taskJob" />
       </property>
       <property name="targetMethod">
           <value>SayHello</value>
       </property>
    </bean>
    <!-- 配置触发器 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 -->
       <property name="jobDetail">
           <ref bean="methodInvokingJobDetail" />
       </property>
       <!-- 每天的8点到21点每隔1分钟触发,具体说明见附录 -->
       <property name="cronExpression">
           <value>0 * 08-21 * * ?</value>
       </property>
    </bean>
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
       <!-- 添加触发器 -->
       <property name="triggers">
           <list>
              <ref local="cronTrigger" />
           </list>
       </property>
    </bean>
</beans>

Web プロジェクトで実行したい場合は、

Minute 0-59, - * /

Hour 0-23, - * /
Date 1-31, - を Web に追加する必要もあります。 * ? / L W C
月 1 ~ 12 または JAN ~ 12 月、 - * /
週 1 ~ 7 または SUN ~ SAT 、 - * ? / L C #
年 (オプション) 空白のまま、1970 ~ 2099 、 - * /
式意味
「0 0 12 * * ?」毎日正午にトリガー
「0 15 10 ? * *」毎日午前 10 時 15 分にトリガー
「0 15 10 * * ?」
「0 15 10 * * ? *」 毎日午前 10 時 15 分にトリガーされます
「0 15 10 * * ? 2005」 2005 毎日午前 10 時 15 分にトリガーされます
「0 * 14 * * ?」 1 分ごとにトリガーされます毎日午後 2 時から午後 2 時 59 分まで
"0 0/5 14 * * ?" 毎日午後 2 時から午後 2 時まで 1 分ごとにトリガー 2:55 の間は 5 分ごとにトリガー
"0 0/5 14,18 * * ?" 午後 2 時から午後 2 時 55 分までは 5 分ごとにトリガーします。また、午後 6 時から 6 時 55 分までは 5 分ごとにトリガーします。
"0 0 -5 14 * * ?" 毎日午後 2 時から午後 2 時 05 分までは 1 分ごとにトリガーします
「0 10,44 14 ? 3 WED」は毎週水曜日の午後 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 * 6L」 10 時にトリガー毎月最終金曜日の午前 15 時
「0 15 10 ? * 6L 2002-2005」 2002 年から 2005 年まで毎月末にトリガーされます。金曜日の午前 10 時 15 分にトリガーされます
「0 15 10 ? * 6」 #3」 毎月第 3 金曜日の午前 10 時 15 分にトリガーされます

Java での春にスケジュールされたタスクの実装コードに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。