首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

定时器配备

2012-08-24 
定时器配置1.spring定时器是大家在做项目的时候经常用到的,有了定时器就可以有一定规律的调用某些接口或者

定时器配置

1.spring定时器是大家在做项目的时候经常用到的,有了定时器就可以有一定规律的调用某些接口或者执行某些程序。

首先是spring文件配置:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"><beans><!-- 12小时执行一次 --><bean id="recordJobTimer" /></property><property name="delay"><value>43200000</value></property><property name="period"><value>30000</value></property></bean><bean id="job2"  /></list></property></bean><!-- 录音删除 --><bean id="recordDeleteJob" value="${ftp.local}"/></bean></beans>

?

然后是实现类的代码:

package com.net263.ccs.job;import java.io.File;import java.util.TimerTask;import org.apache.log4j.Logger;import org.springframework.util.StringUtils;import com.net263.ccs.common.Constants;import com.net263.ccs.util.DateUtil;/** * 类描述:录音文件删除 *  * @author ming.li * @time 2011-5-17 上午11:16:33 */public class RecordDeleteJob extends TimerTask {/** 本地目录 */private String localPath;/** 日志logger */protected final Logger logger = Logger.getLogger(getClass());/** * 定时删除录音文件 */@Overridepublic void run() {// 获取今天String today = DateUtil.getCurrentSimpleTime().substring(0, 8);// 根目录File f = new File(localPath);if (!f.exists()) {logger.error("文件夹不存在");return;}// 取次级目录String[] dirs = f.list();if (dirs != null && dirs.length > 0)for (String dir : dirs) {if (StringUtils.hasText(dir)) {File d = new File(localPath + dir);String[] dirDateTemp = dir.substring(11).split("-");String dirDate = dirDateTemp[0] + dirDateTemp[1] + dirDateTemp[2];// 判断超过一个月if (Integer.parseInt(today) - Integer.parseInt(dirDate) > Constants.MIN_DELETE)if (d.delete()) {// 删除成功} else {File[] fs = d.listFiles();for (int i = 0; i < fs.length; i++) {if (!fs[i].isDirectory()) {fs[i].delete();logger.info("删除文件:" + fs[i].getAbsolutePath());}}d.delete();logger.info("删除除文件夹");}}}}/** * @param localPath *            the localPath to set */public void setLocalPath(String localPath) {this.localPath = localPath;}}

?

2.java也有自己的定时器,而且实现起来更加简单.

首先创建一个Test类

import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.Timer;public class Test {private static int time;private static Properties p; // Properties p = System.getProperties();static {InputStream is = TestJob.class.getClassLoader().getResourceAsStream("common.properties");p = new Properties();try {p.load(is);time = Integer.parseInt(p.getProperty("test.delay"));} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {Timer timer = new Timer();timer.schedule(new TestJob(), 1000, time);// 在1秒后执行此任务,每次间隔xxx秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.}}

?

然后创建一个TestJob类,继承TimerTask

import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.TimerTask;public class TestJob extends TimerTask {private static Properties p; // Properties p = System.getProperties();/** 日志logger */static {InputStream is = TestJob.class.getClassLoader().getResourceAsStream("common.properties");p = new Properties();try {p.load(is);System.out.println("初始化成功");} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {}}

?

run方法里写要循环调用的方法,如此简单!

热点排行