Quartz是一個(gè)完全由java編寫的開源作業(yè)調(diào)度框架。不要讓作業(yè)調(diào)度這個(gè)術(shù)語嚇著你。盡管Quartz框架整合了許多額外功能, 但就其簡(jiǎn)易形式看,你會(huì)發(fā)現(xiàn)它易用得簡(jiǎn)直讓人受不了!Quartz整合在sPRing mvc的步驟:
1)準(zhǔn)備spring.jar包
2)在WebRoot——>WEB-INF目錄下創(chuàng)建spring-listener.xml文件
3)在該xml文件添加以下代碼:
使用CronTrigger:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <bean id="quartzJob" class="com.quartz.CommonQuartz" </bean> <bean id="quartzTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="quartzJob"></ref> </property> <property name="targetMethod"> <value>TaskFunction</value> </property> </bean> <bean id="startQuartzTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="quartzTask"></ref> </property> <property name="cronExpression"> <value>*/1 * * * * ? </value> </property> </bean> <bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="startQuartzTime"></ref> </list> </property> </bean></beans>
其中cronExpression表達(dá)式對(duì)特殊字符的大小寫不敏感,對(duì)代表星期的縮寫英文大小寫也不敏。
表示式 | 說明 |
"0 0 12 * * ? " | 每天12點(diǎn)運(yùn)行 |
"0 15 10 ? * *" | 每天10:15運(yùn)行 |
"0 15 10 * * ?" | 每天10:15運(yùn)行 |
"0 15 10 * * ? *" | 每天10:15運(yùn)行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15運(yùn)行 |
"0 * 14 * * ?" | 每天14點(diǎn)到15點(diǎn)之間每分鐘運(yùn)行一次,開始于14:00,結(jié)束于14:59。 |
"0 0/5 14 * * ?" | 每天14點(diǎn)到15點(diǎn)每5分鐘運(yùn)行一次,開始于14:00,結(jié)束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14點(diǎn)到15點(diǎn)每5分鐘運(yùn)行一次,此外每天18點(diǎn)到19點(diǎn)每5鐘也運(yùn)行一次。 |
"0 0-5 14 * * ?" | 每天14:00點(diǎn)到14:05,每分鐘運(yùn)行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14:44,每分鐘運(yùn)行一次。 |
"0 15 10 ? * MON-FRI" | 每周一,二,三,四,五的10:15分運(yùn)行。 |
"0 15 10 15 * ?" | 每月15日10:15分運(yùn)行。 |
"0 15 10 L * ?" | 每月最后一天10:15分運(yùn)行。 |
"0 15 10 ? * 6L" | 每月最后一個(gè)星期五10:15分運(yùn)行。 |
"0 15 10 ? * 6L 2007-2009" | 在2007,2008,2009年每個(gè)月的最后一個(gè)星期五的10:15分運(yùn)行。 |
"0 15 10 ? * 6#3" | 每月第三個(gè)星期五的10:15分運(yùn)行。 |
<bean id="simpleTriggerTime" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail"> <ref bean="quartzTask"></ref>
</property>
<property name="startDelay" value="0" />
<property name="repeatInterval">
<value>3600000</value>
</property>
</bean>
4)在com.quartz.CommonQuartz類下添加TaskFunction方法,該方法即作業(yè)調(diào)度方法。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注