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);
}
}
}
}
<?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);
}
}
}
}
相关文章推荐
- 使用quartz+spring实现简单的可配置化的定时任务(可和数据库配套使用)
- 使用Spring+Quartz实现定时任务
- 使用Spring提供Quartz来实现定时任务
- 使用spring quartz实现定时任务
- 使用spring quartz实现定时任务
- 使用Spring + quartz实现定时任务调度
- 如何使用spring 定时调度 【 Spring+Quartz实现定时任务 】
- 关于Java Web 使用Spring中使用Quartz(定时调用、实现固定时间执行), 触发定时器(执行某些任务)的实例
- Spring中使用quartz插件实现定时任务
- Spring与Quartz集成实现定时调度任务的简单使用
- 使用spring quartz实现定时任务
- 使用Spring3+Quartz实现定时任务
- spring使用Quartz实现定时任务
- 使用Spring + quartz实现定时任务调度
- spring中使用quartz实现定时任务
- 使用spring quartz实现定时任务
- Spring--简单使用quartz实现定时作业
- 在Grails中使用Quartz插件实现定时任务
- Spring结合Quartz实现多任务定时调用(转)
- Spring -- 简单使用quartz实现定时作业