01 |
public class TimerManager
{ |
02 |
03 |
//时间间隔 |
04 |
private static final long PERIOD_DAY
= 24 * 60 * 60 * 1000 ; |
05 |
|
06 |
public TimerManager()
{ |
07 |
Calendar
calendar = Calendar.getInstance(); |
08 |
|
09 |
/***
定制每日2:00执行方法 ***/ |
10 |
11 |
calendar.set(Calendar.HOUR_OF_DAY, 2 ); |
12 |
calendar.set(Calendar.MINUTE, 0 ); |
13 |
calendar.set(Calendar.SECOND, 0 ); |
14 |
|
15 |
Date
date=calendar.getTime(); //第一次执行定时任务的时间 |
16 |
|
17 |
//如果第一次执行定时任务的时间
小于 当前的时间 |
18 |
//此时要在
第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。 |
19 |
if (date.before( new Date()))
{ |
20 |
date
= this .addDay(date, 1 ); |
21 |
} |
22 |
|
23 |
Timer
timer = new Timer(); |
24 |
|
25 |
NFDFlightDataTimerTask
task = new NFDFlightDataTimerTask(); |
26 |
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。 |
27 |
timer.schedule(task,date,PERIOD_DAY); |
28 |
} |
29 |
30 |
//
增加或减少天数 |
31 |
public Date
addDay(Date date, int num)
{ |
32 |
Calendar
startDT = Calendar.getInstance(); |
33 |
startDT.setTime(date); |
34 |
startDT.add(Calendar.DAY_OF_MONTH,
num); |
35 |
return startDT.getTime(); |
36 |
} |
37 |
|
38 |
} |
在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后
发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况
发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。
01 |
public class NFDFlightDataTimerTask extends TimerTask
{ |
02 |
03 |
private static Logger
log = Logger.getLogger(NFDFlightDataTimerTask. class ); |
04 |
05 |
@Override |
06 |
public void run()
{ |
07 |
try { |
08 |
//在这里写你要执行的内容 |
09 |
|
10 |
} catch (Exception
e) { |
11 |
log.info( "-------------解析信息发生异常--------------" ); |
12 |
} |
13 |
} |
14 |
} |
15 |
16 |
public class NFDFlightDataTaskListener implements ServletContextListener
{ |
17 |
|
18 |
public void contextInitialized(ServletContextEvent
event) { |
19 |
new TimerManager(); |
20 |
} |
21 |
22 |
public void contextDestroyed(ServletContextEvent
event) { |
23 |
} |
24 |
25 |
} |
然后要在web.xml里面配置监听器
1 |
< listener > |
2 |
< listener-class > |
3 |
com.listener.NFDFlightDataTaskListener |
4 |
</ listener-class > |
5 |
</ listener > |
作者:huang798807481 发表于2013-1-12 15:56:32 原文链接
阅读:43 评论:0 查看评论