quartz实现
-
quartz依赖包
org.quartz-scheduler quartz 1.8.6
1.首先配置一个定时任务执行类
package com.kunming.jobs;
import com.kunming.service.WsService;
import org.apache.log4j.Logger;
import java.util.Date;
/**
* 定时任务传输昆明数据
* Created by Administrator on 2018/3/12.
*/
public class DataTransferJob {
private static Logger logger = Logger.getLogger(DataTransferJob.class);
private WsService wsService;
public void execute(){
logger.info(" [获取人工检测记录] 开始 at:" + new Date());
wsService.getManualCheckData();
logger.info(" [获取人工检测记录] 结束 at:" + new Date());
logger.info(" [获取走形公里] 开始 at:" + new Date());
wsService.getMileage();
logger.info(" [获取走形公里] 结束 at:" + new Date());
}
public WsService getWsService() {
return wsService;
}
public void setWsService(WsService wsService) {
this.wsService = wsService;
}
}
2.在spring配置文件添加如下配置
<bean id="dataTransferJob" class="com.kunming.jobs.DataTransferJob" >
<property name="wsService" ref="wsService"/> //容器控制定时任务类,产生对象,注入依赖对象
</bean>
<bean id="dataTransferJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="dataTransferJob" /> //任务细节 ,注入任务对象
</property>
<property name="targetMethod">
<value>execute</value>//任务对象执行方法
</property>
<property name="concurrent">
<value>false</value>//配置同一个任务依次执行,不重叠
</property>
</bean>
<bean id="dataTransferTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref local="dataTransferJobDetail" />//任务执行触发器,注入任务细节
</property>
<property name="cronExpression">
<!--<value>0 0/5 /1 * * ? </value>-->
<value>0 0 0 1/1 * ? </value>//任务执行周期表达式 ,cron表达式触发器,也有频率简单触发器
</property>
</bean>
<bean id="scheduler2" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
lazy-init="false" autowire="no">
<property name="triggers">
<list>
<ref local="dataTransferTrigger" />//任务调度工厂对象,注入任务触发器对象
</list>
</property>
<property name="autoStartup">//自动开始
<value>true</value>
</property>
</bean>