Spring集成quartz框架實現定時任務(一)

1.添加pom.xml依賴

    spring 依賴包

              <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.13.RELEASE</version>
</dependency> 

                <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

    quartz依賴包

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

2.接口設計

package ceilometer.timeTask;

import org.apache.log4j.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class NovaVmTask extends QuartzJobBean {
private static final Logger logger = Logger.getLogger(NovaVmTask.class);

/**
* Time Task:time update virtualhost!

* @param context
*            job
* @throws JobExecutionException
*             JobExecutionException
*/
@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
long start = System.currentTimeMillis();
try {

System.out.println("________________hello time world!!!!!!!!!!________________________");

} catch (Exception e) {
logger.error("PerforTask Error:", e);
}
}


}

3.applicationContext.xml配置定時任務,主要配置由定義調度工作任務,出發任務調節,啓動定時任務組成

    <!-- 1.定義調度工作任務 ,可以有好幾種實現方式,這裏只是其中有一種-->
<bean id="novaVmTask" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>ceilometer.timeTask.NovaVmTask</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="novaVmService">
<ref bean="novaVmService" />
</entry>
</map>
</property>
</bean>

  <!-- 2. 觸發任務條件 -->
<bean id="novaVmTaskTrigger" lazy-init="false"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<!-- 要調用的業務 -->
<ref bean="novaVmTask" />
</property>
<property name="cronExpression">
<!-- 每5分鐘觸發一次 -->
<!-- <value>0 0/1 * * * ?</value> -->
<value>0 0/2 * * * ?</value>
</property>
</bean>

 <!-- 3.啓動定時器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
autowire="no">
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
</props>
</property>
<property name="triggers">
<list>
<ref bean="novaVmTaskTrigger" />
</list>
</property>
</bean>
</beans>

   

   

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