如何使用Timer设置定时任务?

时间:2010-10-18 06:18:49

标签: java timer

在我的应用程序中,我想在每天午夜将一些数据加载到数据库,如何使用Timer设置它?

我以为使用过:

Timer t=new Timer();
TimerTask tt=new TimerTask(){
  public void run(
    //read the data, and push to db
  );
};
t.schedule(tt,(the next midnight-now time));

但是,我担心这只能执行一次。任何修复?

2 个答案:

答案 0 :(得分:2)

您可能想要使用public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

从指定时间开始,为重复的固定速率执行计划指定的任务。随后的执行大约定期进行,间隔指定的时间段。

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Timer.html

答案 1 :(得分:0)

您可能想要检查QuartzScheduler。它在复杂的时序过程中非常有用。它也很容易使用。

由于您的任务非常简单,您可能不想使用额外的库,但请记住这一点。

http://www.quartz-scheduler.org/