scheduling java_如何在Java中实现Job Scheduling

如何在Java中实现Job Scheduling

发布时间:2016-02-28 |

阅读次数:471

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值