spring mvc定時任務的簡單使用


 

版權聲明:本文為樓主原創文章,未經樓主允許不得轉載,如要轉載請注明來源。

  說起定時任務,開發的小伙伴們肯定不陌生了。有些事總是需要計算機去完成的,而不是傻傻的靠我們自己去。可是好多人對定時器總感覺很陌生,今天樓主就帶小伙伴們揭開它的神秘面紗,講解一下spring 定時器的配置。

 1 <!-- 工作的bean -->
 2         <bean id="myJob" class="weixin.test.controller.TestController" />
 3 
 4     <!-- job的配置開始 -->
 5     <bean id="myJobDetail"
 6         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 7         <property name="targetObject">
 8             <ref bean="myJob" />
 9         </property>
10         <property name="targetMethod">
11             <value>test</value>
12         </property>
13         <!--concurrent=false  表示 不做並發執行 一個任務未完成下一個任務等待上一個任務-->
14         <property name="concurrent">
15             <value>false</value>  
16         </property>
17     </bean>
18     <!-- job的配置結束 -->
19 
20     <!-- 調度的配置開始-->
21     <bean id="crontestJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
22         <property name="jobDetail">
23             <ref bean="myJobDetail" />
24         </property>
25         <property name="cronExpression">
26                 <!-- 每1分鍾執行 -->
27             <value>0 0/1 * * * ?</value> 
28         </property>
29     </bean>
30     <!-- 調度的配置結束 -->    
31     
32     <!-- 啟動觸發器的配置開始 -->
33     <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
34         <property name="triggers">
35             <list>    
36                 <ref bean="crontestJobTrigger" />             
37             </list>
38         </property>
39     </bean>
40     <!-- 啟動觸發器的配置結束 -->            

配置中需要注意的地方,我已經標紅,下面講解一下。該配置我們從后向前看。首先第32-40行,是啟動觸發器的配置,這里面我標紅了crontestJobTrigger,這個名字,你可以隨便起,但是往上看21-28行,保證21行的名字和此名字一樣即可。調度配置開始,同樣23行的方法名稱你可以修改,保證名字一致即可。多少時間執行一次同樣在這里修改的。第1-18行是關聯到實際需要執行的后台代碼。我在這里后台controller是TestController,方法叫test.然后后台代碼為:

public void test(){
        System.out.println("定時器開始執行了,它說我是個好人");
    }

ok,這樣一個簡單的定時器已經完成。那么有的小伙伴們要說,我一個程序要跑多個定時任務,怎么弄呢?簡單。其實只要你理解了上面的代碼,懂了它的執行順序,就知道怎么配。下面我附上配置兩個定時器的代碼,供參考。

 1 <!-- 工作的bean -->
 2     <!-- <bean id="myJob" 
 3     <bean id="myJob" class="weixin.test.controller.TestController" />
 4     <!-- job的配置開始 -->
 5     <bean id="myJobDetail"
 6         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 7         <property name="targetObject">
 8             <ref bean="myJob" />
 9         </property>
10         <property name="targetMethod">
11             <value>test</value>
12         </property>
13         <!--concurrent=false  表示 不做並發執行 一個任務未完成下一個任務等待上一個任務-->
14         <property name="concurrent">
15             <value>false</value>  
16         </property>
17     </bean>
18     <!-- job的配置結束 -->
19 
20     <!-- 調度的配置開始**定時器1 -->
21     <bean id="crontestJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
22         <property name="jobDetail">
23             <ref bean="myJobDetail" />
24         </property>
25         <property name="cronExpression">
26         <!-- 每1分鍾執行 -->
27         <value>0 0/1 * * * ?</value> 
28         </property>
29     </bean>
30     <!-- 調度的配置結束 -->
31 <!-- ************************** 定時器2************************** -->       
32     
33     <!-- 工作的bean -->
34     <bean id="myJob1" class="weixin.test.controller.TestController" />
35     
36     <!-- job的配置開始 -->
37     <bean id="myJobDetail1"
38         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
39         <property name="targetObject">
40             <ref bean="myJob1" />
41         </property>
42         <property name="targetMethod">
43             <value>test1</value>
44         </property>
45         <!--concurrent=false  表示 不做並發執行 一個任務未完成下一個任務等待上一個任務-->
46         <property name="concurrent">
47             <value>false</value>  
48         </property>
49     </bean>
50     <!-- job的配置結束 -->
51     
52     <!-- 調度的配置開始****定時器2 -->
53     <bean id="crontestJobTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
54         <property name="jobDetail">
55             <ref bean="myJobDetail1" />
56         </property>
57         <property name="cronExpression">
58         <!-- 每1分鍾執行 -->
59         <value>0 0/1 * * * ?</value> 
60         </property>
61     </bean>
62     <!-- 調度的配置結束 -->
63     
64     <!-- 啟動觸發器的配置開始 -->
65     <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
66         <property name="triggers">
67             <list>
68                 <ref bean="crontestJobTrigger" />
69                 <ref bean="crontestJobTrigger1" />
70             </list>
71         </property>
72     </bean>


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM