首先,pom.xml 引入依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
applicationContext.xml 中配置:
<bean id="quartz" class="cn.boxiao.bxn.paycost.web.service.QuartzTask"/>
<bean id="jobFactory" class="cn.boxiao.bxn.paycost.web.service.JobFactory"/>
<bean id="checkwechatstatement" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartz" />
<property name="targetMethod" value="checkwechatstatement" />
</bean>
<bean id="cornTriggerCheckWechatStatement" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="checkwechatstatement" />
<!-- 每天早晨8点触发 -->
<property name="cronExpression" value="${wechatstatementTime}" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobFactory" ref="jobFactory"/>
<property name="triggers">
<list>
<ref bean="cornTriggerCheckWechatStatement" />
</list>
</property>
</bean>
新建 JobFactory
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;
public class JobFactory extends AdaptableJobFactory {
@Autowired
private AutowireCapableBeanFactory capableBeanFactory;
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//调用父类的方法
Object jobInstance = super.createJobInstance(bundle);
//进行注入
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}
}
新建Quartz
import cn.boxiao.bxn.paycost.statement.service.StatementService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.ParseException;
@Component
public class QuartzTask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private StatementService statementService;
/**
* 每天早晨8点开始轮询数据
*/
public void checkwechatstatement() throws ParseException {
try {
logger.debug("----------------------- 10点开始统计生成前一天对账记录开始-----------");
statementService.checkwechatstatement(null);
logger.debug("======================= 10点开始统计生成前一天对账记录结束===========");
} catch (Exception e) {
logger.error("QuartzTask===checkwechatstatement:",e.getMessage());
}
}
}
Quartz定时任务设置成功! 欢迎留言交流