web.xml里监听
<listener>
<listener-class>com.tzx.common.util.ftpscan.TimerRun</listener-class>
</listener>
package com.tzx.common.util.ftpscan;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TimerRun implements ServletContextListener {
private static Log log = LogFactory.getLog(TimerRun.class);
private ScheduledExecutorService executorService = Executors
.newScheduledThreadPool(1);
public void contextDestroyed(ServletContextEvent arg0) {
executorService.shutdown();
}
public void contextInitialized(ServletContextEvent arg0) {
log.info("------定时--execute---ftpService--start------");
run();
log.info("------定时--execute---ftpService--end------");
}
/**
* 定时执行 每天凌晨定时执行任务
*/
private void run() {
long oneDay = 24 * 60 * 60 * 1000;
long initDelay = getTimeMillis("23:59:59") - System.currentTimeMillis();
initDelay = initDelay > 0 ? initDelay : oneDay + initDelay;
executorService.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
FTPListAllFiles.ftpService();
} catch (IOException e) {
e.printStackTrace();
}
}
}, initDelay, oneDay, TimeUnit.MILLISECONDS);
}
/**
* 获取指定时间对应的毫秒数
*
* @param time
* "HH:mm:ss"
* @return
*/
private static long getTimeMillis(String time) {
try {
DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");
Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " "
+ time);
return curDate.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
}
分享到:
相关推荐
JAVA定时器,只要服务开启,就能指定某些代码在某个时刻执行,例如:监狱里罪犯的余刑天数,每天都要减少,就可以设置一个定时器在每天的23:59:59来执行减少余刑天数的天。
JAVA定时器JAVA定时器.pdf
spring定时器代码。解决多次执行问题。包含quartz-all.jar包。 说明很详细。希望能帮上哪位朋友。
java定时器
实例助解java定时器设置及停止的方法
java 定时器(Timer) java 定时器(Timer) java 定时器(Timer)
Java定时器的使用 Java程序 Java写的一个定时器
java定时器,import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; 规定每天几点执行一次
讲解Java定时器开发
在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。 对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
Java定时器简例
java定时器,timer类操作详解 java定时器,timer类操作详解
Java后台定时器代码Java后台定时器代码Java后台定时器代码Java后台定时器代码Java后台定时器代码
java定时器 spring定时器:包括spring定时器的详细配置以及说明 包含所需的jar包
Java定时器.pdf
java定时器例子,使用 java.util.TimerTask 类来实现定时执行
java web 定时器例子
有助于你快速的查找您要使用的类对象及其方法。
比较全面的定时器,里面有例子,照着例子就可以学会spring和java定时器。