在Java中实现Job Scheduling

原创 2004年07月13日 16:43:00

 在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的Java Timer API来实现。

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

下面是我的程序:

/**

 * @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()方法让它每周日00分执行,避开服务器高峰,实现Job Scheduling的目的。

 

java quarz,job控制,时间表示方法

这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是...
  • w969272198
  • w969272198
  • 2015年06月15日 09:10
  • 3854

算法/调度算法/ShortJobFirst(SJF)短作业优先调度算法

问题描述 SJF(Short Job First)短作业优先,又称为SPN(Short Process Next)短进程优先,这是对FCFS(First Come First Service)先来...
  • Carinya
  • Carinya
  • 2017年04月26日 15:22
  • 418

Quartz入门实例8-实现一个Job监听器

实现  JobListener接口
  • a67474506
  • a67474506
  • 2014年07月31日 21:39
  • 2542

java中quartz 调度在一些定时任务(job)的入门级应用

Quartz 执行详解:http://quartz-scheduler.org/   去下载相应的jar包 在maven中可直接把依赖拷贝过来复制到pom中去。 具体规则可查询quartz的文档 ...
  • u012516914
  • u012516914
  • 2014年03月18日 19:53
  • 4419

java自动运行任务job---quartz的运用

quartz 使用到的包: quartz-2.2.1.jar
  • q383965374
  • q383965374
  • 2014年07月21日 17:38
  • 6267

[译]Java定时任务调度-Quartz文档(三)进一步讲讲Job和Job Detail

正如上篇文章所说的,Job很容易实现,只需要接口中唯一的execute方法。除此之外,你还需要稍微了解下Job、execute、Job interface和JobDetail的一些东西。...
  • hfut_wowo
  • hfut_wowo
  • 2017年03月21日 13:58
  • 931

Machine Schedule(最小点覆盖=最大匹配)

Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12012 ...
  • Enjoying_Science
  • Enjoying_Science
  • 2014年11月06日 21:07
  • 875

在CentOS 7上部署OpenStack Juno时遇到的问题总结

随着安装的进度,持续更新 …ISSUES 1 can not start openstack-keystone service 2 can not run keystone user-list ke...
  • jeremy_yangt
  • jeremy_yangt
  • 2015年05月22日 15:58
  • 3108

深入Spark内核:任务调度(3)-TaskScheduler

TaskScheduler相较于DAGScheduler来说是一个低级的任务调度器(low-level task scheduler),更加准确的来说它更像是一个任务调度器接口。TaskSchedul...
  • qiuhaomaodan
  • qiuhaomaodan
  • 2015年04月11日 16:43
  • 991

Elastic-Job实现原理

原文地址: 实现原理 弹性分布式实现 第一台服务器上线触发主服务器选举。主服务器一旦下线,则重新触发选举,选举过程中阻塞,只有主服务器选举完成,才会执行其他任务。 某作业服务器上线时会自...
  • tanga842428
  • tanga842428
  • 2016年09月28日 11:31
  • 2734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Java中实现Job Scheduling
举报原因:
原因补充:

(最多只允许输入30个字)