spring quartz(定時器)

1、pom.xml配置,引入quartz的jar包,使用最新的2.2.1版本

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>

2、Spring 配置文件:

       <!-- 使用MethodInvokingJobDetailFactoryBean,任務類可以不實現Job接口,通過targetMethod指定調用方法-->
<bean id="taskJob" class="com.fs.decoration.schedule.demo.task.DataConversionTask"/><!--任務類-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="group" value="job_work"/>
<property name="name" value="job_work_name"/>
<!--false表示等上一個任務執行完後再開啓新的任務-->
<property name="concurrent" value="false"/>
<property name="targetObject">
    <ref bean="taskJob"/>
</property>
<property name="targetMethod">
    <value>run</value>
</property>
</bean>
<!--  調度觸發器 -->
<bean id="myTrigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="name" value="work_default_name"/>
<property name="group" value="work_default"/>
<property name="jobDetail">
    <ref bean="jobDetail" />
</property>
<property name="cronExpression">
    <value>0/5 * * * * ?</value>
</property>
</bean>
<!-- 調度工廠 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
    <ref bean="myTrigger"/>
</list>
</property>
</bean>


3、quartz中的時間表達式的設置----corn表達式
時間格式: <!-- s m h d m w(?) y(?) -->,   分別對應: 秒>分>小時>日>月>周>年

Cron表達式的時間字段除允許設置數值外,還可使用一些特殊的字符,提供列表、範圍、通配符等功能,細說如下:

●星號(*):可用在所有字段中,表示對應時間域的每一個時刻,例如,*在分鐘字段時,表示“每分鐘”;

●問號(?):該字符只在日期和星期字段中使用,它通常指定爲“無意義的值”,相當於點位符;

●減號(-):表達一個範圍,如在小時字段中使用“10-12”,則表示從10到12點,即10,11,12;

●逗號(,):表達一個列表值,如在星期字段中使用“MON,WED,FRI”,則表示星期一,星期三和星期五;

●斜槓(/):x/y表達一個等步長序列,x爲起始值,y爲增量步長值。如在分鐘字段中使用0/15,則表示爲0,15,30和45秒,而5/15在分鐘字段中表示5,20,35,50,你也可以使用*/y,它等同於0/y




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