java定時器 基於spring框架的定時任務

第一步:編寫任務類

/**
 * 定 * @Auther: JacobYang
 * @Date: 2018/5/22 16:04
 * @Description:
 */
public class TimerManager {

    public void doJob() {
        
        System.out.println("-調度任務行中...");
    }
}

第二步:配置XML

<!--定-->
<bean id="jobx"
     class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
   <property name="targetObject">
      <bean class="com.djfy.intercept.TimerManager" />
   </property><!--類名-->
   <property name="targetMethod" value="doJob" /><!--方法名-->
   <property name="concurrent" value="false" /><!-- 作不併發調度 -->
</bean>
<!--這是第三步的觸發器配置-->
<bean id="
cronTrigger
" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="jobx" /> <property name="startDelay" value="1000" /><!-- 調度工廠例化後,經過1秒開始調度 --> <property name="repeatInterval" value="3000" /><!-- 每3秒調度一次 --></bean>
<!--第四步:配置調度工廠-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
   <property name="triggers">
      <list>
         <ref bean="cronTrigger" />
      </list>
   </property>
</bean>
(注:同顏色字體,倆名稱必須一樣 我的任務是每天定時(23.59)執行,到這裏你的定時任務已經完成,可以不看下面)

第三步:配置觸發方式(觸發器)

Quartz的作業觸發器有兩種,分別是

 

org.springframework.scheduling.quartz.SimpleTriggerBean

 

org.springframework.scheduling.quartz.CronTriggerBean

 

    第一種SimpleTriggerBean,只支持按照一定頻度調用任務,如每隔30分鐘運行一次。

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
   <property name="jobDetail" ref="jobx" />
   <property name="startDelay" value="1000" /><!-- 調度工廠例化後,經過1秒開始調度 -->
   <property name="repeatInterval" value="30000" /><!-- 每30秒調度一次 -->
</bean>

    第二種CronTriggerBean,支持到指定時間運行一次,如每天23.59運行一次等。

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
   <property name="jobDetail" ref="jobx" />
   <!--每天23:59運行一次 -->
   <property name="cronExpression" value="0 59 23 * * ?" />
</bean>

第四步:配置調度工廠

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
   <property name="triggers">
      <list>
         <ref bean="cronTrigger" />
      </list>
   </property>
</bean>


(可查看問w3cschool

附錄:
cronExpression的配置說明
字段
允許值
允許的特殊字符
0-59, - * /
0-59, - * /
小時    0-23, - * /
日期1-31, - * ? / L W C
月份1-12 或者 JAN-DEC, - * /
星期1-7 或者 SUN-SAT, - * ? / L C #
年(可選)留空, 1970-2099, - * /


-區間
*通配符
?你不想設置那個字段
下面只例出幾個式子

CRON表達式
含義
"0 0 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分每分鐘一次觸發
"0 0/5 14 * * ?"每天從下午2點開始到2:55分結束每5分鐘一次觸發
"0 0/5 14,18 * * ?"每天的下午2點至2:55和6點至6點55分兩個時間段內每5分鐘一次觸發
"0 0-5 14 * * ?"每天14:00至14:05每分鐘一次觸發
"0 10,44 14 ? 3 WED"三月的每週三的14:10和14:44觸發
"0 15 10 ? * MON-FRI"每個週一、週二、週三、週四、週五的10:15觸發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章