服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

如何在java中实现jobscheduling


  在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的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的目的。

扫描关注微信公众号