EJB,J2EE失乐园

轻量级j2ee开发设计开发探讨

BlogJava 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的Java Timer API来实现。

大多商业应用都会用报表和统计,很难想象没有这些帮助我们分析未来趋势的数据,我们还要这系统干什么。问题是如此多的数据我们该如何触发,如果处理对系统性能影响不大。比较好的方式是避开应用高峰,让服务器在闲暇时完成这些事。

下面是我的程序:

package net.nighttale.scheduling;
 
/**
 * @author kevin zhou
 *
 * 在Java中实现Job Scheduling
 * 创建日期 2004-7-13
 */
import java.util.TimerTask;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
 
public class ReportGenerator extends TimerTask{
 
    /* (非 Javadoc)
     * @see java.util.TimerTask#run()
     */
    public void run() {
        System.out.println("Generating report");
 
       
    }
 
}
class MainApplication {
 
  public static void main(String[] args) {
    Timer timer=new Timer();
    Calendar date = Calendar.getInstance();
    date.set(
      Calendar.DAY_OF_WEEK,
      Calendar.SUNDAY
    );
    date.set(Calendar.HOUR, 0);
    date.set(Calendar.MINUTE, 0);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);
    // Schedule to run every Sunday in midnight
    timer.schedule(
      new ReportGenerator(),
      date.getTime(),
      1000 * 60 * 60 * 24 * 7
    );
  }
}
我先简单解释一下,在我们的例子中ReportGenerator继承java.util.TimerTask,它又继承了java.lang.Runnable,我们需要覆盖run()方法。
调用时我们用schedule()方法让它每周日0点0分执行,避开服务器高峰,实现Job Scheduling的目的。
posted on 2005-12-26 17:18 EJB,J2EE失乐园 阅读(433) 评论(0)  编辑  收藏 所属分类: 原创文章

只有注册用户登录后才能发表评论。


网站导航: