说明:下面程序在每天凌晨一点统计数据,执行定时调度,完成定时器功能,spring可以完成。
spring配置文件:applicationContext.xml
<context:annotation-config />
<context:property-placeholder location="classpath:timer.properties" /> <!-- 定时器cron表达式的值从配置文件读取,和applicationContext.xml在同一目录下 -->
<bean id="timer" class="com.amg.large.core.timer.TimerTask" /> <!-- 执行定时器的主类 -->
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="timer" method="test" cron="${cron}"/> <!-- 执行定时器主类的方法名,定时器的cron表达式、设置执行时间 -->
</task:scheduled-tasks>
<task:scheduler id="myScheduler" pool-size="10"/>
timer.properties:
cron=0 0 1 * * ? // 每天凌晨一点执行
主类:TimerTask.java
package com.amg.large.core.timer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TimerTask {
private static Logger logger = LoggerFactory.getLogger(TimerTask.class);
public void test(){
long start = System.nanoTime();
CountRecordMain.addCountRecord_ByTypeIs0();
CountRecordMain.addCountRecord_ByHasTypes2();
logger.info("time=" + (System.nanoTime() - start) / Math.pow(10, 9) + "s");
}
}