您的位置:首页 > 编程语言 > Java开发

spring里面使用quartz实现定时任务

2016-07-31 17:34 796 查看
spring配置文件进行配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 加载sessionFactory -->
<bean id="complainDao" class="cn.zhaobaoqi.nsfw.complain.dao.impl.ComplainDaoImpl"
parent="baseDao">
</bean>
<!--用注解扫描service -->
<context:component-scan base-package="cn.zhaobaoqi.nsfw.complain.service.impl">
</context:component-scan>

<!-- 1.制定任务详细信息 -->
<bean id="conplainJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 设置执行对象 -->
<property name="targetObject" ref="complainService"></property>
<!-- 设置执行对象中的对应的执行方法 -->
<property name="targetMethod" value="autoDeal"></property>
<!-- 是否可以同部执行 -->
<property name="concurrent" value="false"></property>
</bean>
<!-- 2.制定任务执行触发器 -->
<bean id="complainCronTargert" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 设置任务详细 -->
<property name="jobDetail" ref="conplainJobDetail"></property>
<!-- 执行任务时机表达式 -->
<property name="cronExpression" value="10 * 15 l * ?"></property>
</bean>
<!-- 3.设置调度工厂 -->
<bean id="complainScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 设置触发器们 -->
<property name="triggers">
<list>

                <ref bean="complainCronTargert" />
</list>
</property>
</bean>

</beans>

自动执行的方法

package cn.zhaobaoqi.nsfw.complain.service.impl;

import java.util.Calendar;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.zhaobaoqi.core.service.impl.BaseServiceImpl;

import cn.zhaobaoqi.core.util.QueryHelper;

import cn.zhaobaoqi.nsfw.complain.dao.ComplainDao;

import cn.zhaobaoqi.nsfw.complain.entity.Complain;

import cn.zhaobaoqi.nsfw.complain.service.ComplainService;

@Service("complainService")

public class ComplainServiceImpl extends BaseServiceImpl<Complain> implements ComplainService {

private ComplainDao dao;

@Resource
public void setDao(ComplainDao dao) {
super.setBaseDao(dao);
this.dao = dao;
}

@Override
public void autoDeal() {
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);//设置当前为一号
calendar.set(Calendar.HOUR_OF_DAY, 0);//0时
calendar.set(Calendar.MINUTE, 0);//0分
calendar.set(Calendar.SECOND, 0);//0秒
//1.查询本月之前的待受理的投诉的我列表
QueryHelper queryHelper = new QueryHelper(Complain.class,"c");
queryHelper.addCondition("c.state=?", 0);
queryHelper.addCondition("c.compTime<?", calendar.getTime());
List<Complain> complains = findObjects(queryHelper);
if (complains!=null && complains.size()>0) {
//2.更新状态为已失效
for (Complain complain : complains) {
complain.setState("2");
update(complain);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: