spring+Quartz定時任務

 

一、spring定時任務能夠使用JDK的Timer類庫來作任務調度,不過不能夠像cron服務那樣能夠指定具體年、月、日的時間。只能將時間經過換算成微秒後傳給它。web

類繼承TimerTask類。spring

<bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">app

<!--程序啓動後開始執行任務的延遲時間 -->spa

<property name="delay" value="0" />unix

<!--每隔一天【一天=24&times;60&times;60&times;1000微秒】執行一次-->orm

<property name="period" value="86400000" />xml

<!--業務統計報表bean -->繼承

<property name="timerTask" ref="businessReport" />it

</bean>io

其中period就是一天的微秒數。若是每個月1日運行一次,那就複雜了,不知如何配置。由於月份有大、小月之分,每個月的微秒數都不同。

使用Quatrze類庫不但有JDK的Timer類庫的配置,還有着相似於unix的cron服務的配置。類繼承QuartzJobBean


二、具體的步驟以下:

① 編寫業務類,該類繼承了QuartzJobBean,主要的邏輯在execute方法中編寫

②配置spring的applicationContext.xml文件

    2.1 配置任務JobDetailBean

    2.2配置觸發器 CronTriggerBean

    2.3配置調度器  SchedulerFactoryBean

③ 所須要的jar包:

     spring.jar,quartz.jar,commons-logging-1.0.4.jar,commons-dbcp-1.2.2.jar,commons-pool-1.3.jar

④把quartz.properties放到類路徑下


三、Quartz的兩大核心是任務和觸發器,觸發器分爲CronTrigger和SimpleTrigger。CronTrigger支持比SimpleTrigger更具體的調度,基於cron表達式,CronTrigger支持相似日立的重複間隔,而不是單一的時間間隔。

相關文章
相關標籤/搜索