1,在spring配置文件里引入:<import resource="classpath:spring-config/applicationContext-task.xml" />
2,applicationContext-task.xml:
<?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:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<task:annotation-driven /> <!-- 定时器开关 -->
<bean id="task4ClearLog" class="com.lkb.timerTask.Task4ClearLog"></bean>
<task:scheduled-tasks>
<!-- “0 0 2 * * ?” 每天凌晨2点执行Task4ClearLog下startUp方法 -->
<!--<task:scheduled ref="task4ClearLog" method="startUp" cron="*/5 * * * * ?" />-->
<task:scheduled ref="task4ClearLog" method="startUp" cron="0 0 2 * * ?" />
</task:scheduled-tasks>
</beans>
3,startUp()方法:
public void startUp() {
try {
System.out.println("==============邮箱账单Task start====================");
// log.info("==============邮箱账单Task starting====================");
countEmailBankService.delete4Task(new Date());
System.out.println("==============邮箱账单Task end======================");
} catch (Exception e) {
SendMailOnTime.sendAllMail("定时器Task清理15天前信用卡账单邮件log时,出现异常:"+e);
}
}
4,delete4Task()方法:
<!-- 定时清15天前的数据 -->
<delete id="delete4Task" parameterType="java.util.Date">
delete from t_countemailbank,t_emailbank_log
using t_countemailbank, t_emailbank_log
where t_countemailbank.id = t_emailbank_log.pId
and t_countemailbank.createTime <= date_sub(#{currentDate, jdbcType=TIMESTAMP}, INTERVAL 15 DAY)
</delete>