WEB开发网
开发学院WEB开发Jsp 如何在Java中实现Job Scheduling 阅读

如何在Java中实现Job Scheduling

 2008-01-05 10:00:26 来源:WEB开发网   
核心提示:在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务,如何在Java中实现Job Scheduling,在本文中我们将演示如何用标准的java Timer API来实现,大多商业应用都会用报表和统计,调用时我们用schedule()方法让它每周日0点0分执行,避开服务器高峰,很难想象没有这些帮助我们分析未来趋势

  在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的java Timer API来实现。
  大多商业应用都会用报表和统计,很难想象没有这些帮助我们分析未来趋势的数据,我们还要这系统干什么。问题是如此多的数据我们该如何触发,假如处理对系统性能影响不大。比较好的方式是避开应用高峰,让服务器在闲暇时完成这些事。
  下面是我的程序:
  package net.nighttale.scheduling;
  
  import java.util.Calendar;
  import java.util.Date;
  import java.util.Timer;
  import java.util.TimerTask;
  /**
  * @author kevin zhou
  *
  * 在Java中实现Job Scheduling
  * 创建日期 2004-7-13
  */
  public class ReportGenerator extends TimerTask {
  
  public void run() {
  System.out.PRintln("Generating report");
  //TODO generate 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的目的。

Tags:如何 Java 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接