Spring 定時任務的實現

本人暫時用到的實現定時任務的方式有2種

一、註解方式實現,簡單方便

1:在applicationContext.xml中加入下面的配置,

這是spring的組件掃描,保證含有定時任務的類,能被spring掃描

<context:component-scan base-package="com.test.task">

這是定時任務的配置

<task:executor id="executor" pool-size="1" /> 
<task:scheduler id="scheduler" pool-size="1" /> 
<task:annotation-driven executor="executor" scheduler="scheduler" />

定時任務類如何寫

1.用@Component標註類  

2 用@Lazy(value=false)標註類(這個寫也行,不寫也可以。本人在做項目時,是沒有寫的)

3 寫具體的方法

         @Scheduled(cron="0/5 * * * * *")//表示具體運行的時間
          public void testTask(){
           //具體方法
}

4.配置完成

二、配置文件的實現方式

1.實現定時任務的類,按照普通的java類來寫就可以,類中的定時任務的類的方法名稱寫成work()就可以了

例如

  • public class TmallPriceStoreChangeFailedGetJob {
  • public void work() {
  • //具體方法實現
  • }
  •  }

2.複製一個application.xml文件,重命名爲application_tmallPriceStorceChangeFailed_task.xml,在spring   配置文件中添加

  • <import resource="application_tmallPriceStorceChangeFailed"/>

3.application_tmallPriceStorceChangeFailed_task.xml文件按照以下寫法

  • <!-- quartz job config begin -->
  • <bean id="tmallPriceStoreChangeFailedGetJob" class="com.shopin.third.job.TmallPriceStoreChangeFailedGetJob" />
  • <bean id="getTmallPriceStroeChangeFailed"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  • <property name="targetObject">
  • <ref bean="tmallPriceStoreChangeFailedGetJob" />
  • </property>
  • <property name="targetMethod">
  • <value>work</value>
  • </property>
  • </bean>
  • <bean id="getTmallPriceStroeChangeFailedTask" class="org.springframework.scheduling.quartz.CronTriggerBean">
  • <property name="jobDetail">
  • <ref bean="getTmallPriceStroeChangeFailed" />
  • </property>
  • <!-- cron表達式 -->
  • <property name="cronExpression">
  • <value>0 30 09 * * ?</value><!--每天9點30執行一次 -->        
  • </property>
  • </bean>
  • <!-- quertz 啓動配置 -->
  • <bean id="startTmallQuertz"class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  • <property name="triggers">
  • <list>
  • <ref bean="getTmallPriceStroeChangeFailedTask" />
  • </list>
  • </property>
  • </bean>

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