网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.把您从麻烦中解脱的JNDI在J2EE中.
.Java入门之:HelloWorld.java.
.J2EE中的异常管理及错误跟踪框架.
.Eclipse下实现软件项目的源码管理.
.中国年历算法和程式.
.java入门:怎样取得class文件的路.
.纯继承与扩展.
.JAVA 多进程应用 多个定时器作业.
.Java数据对象(JDO)快速入门.
.JavaMail 发送附件的例子.
.软件的架构设计.
.log4j--新的日志操作方法.
.关于struts的文本域.
.Struts标记库(2).
.java中传值及引伸深度克隆的思考.
.使用J2SE API读取Properties文件.
.spring+hibernate+jbpm整合成功.
.Java 开发环境的过去、现在和将来.
.如何在2D Graphics中使用双缓冲.
.Eclipse 3.1 WTP Web程序支持Bee.

如何在Java中实现Job Scheduling

发表日期:2008-1-5



  在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的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的目的。
上一篇:如何用Java得到硬盘空间 人气:914
下一篇:对Java 提供的两个Map 进行了性能测试 人气:648
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐