`

java timer 做定时任务

 
阅读更多

       最近做一个项目用到定时任务,情景是每个月1号的凌晨3点计算上个月的数据。

在网上研究了一下资料,最后用timer实现了。我用这个timer每天运行一次,检查今天的日期是否是1号,是就运行计算方法,不是就什么都不做。

代码如下:

public class payTask(){

private static Timer payTimer = null;

 

public static void startPayTimer() {

if (payTimer != null) {

payTimer.cancel();

payTimer = null;

}

payTimer = new Timer();

 

Calendar c = Calendar.getInstance();

c.set(Calendar.DATE, c.get(Calendar.DATE)+1);

c.set(Calendar.HOUR_OF_DAY, 3);

c.set(Calendar.MINUTE, 00);

payTimer.schedule(new TimerTask() {

@Override

public void run() {

SimpleDateFormat dateformat=new SimpleDateFormat("dd");

       String day = dateformat.format(new Date());

if(day.equals("01")){

//do anythings

calculateMonthPay();

}

}

}, c.getTime(), 24 * 3600000);

}

 

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics