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>