`

java 每天定时执行任务

阅读更多
public class RewardTaskManage {

//时间间隔一天
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;

public RewardTaskManage() {

  Calendar calendar = Calendar.getInstance();

  /*** 定制每日零点执行方法 ***/
  calendar.set(Calendar.HOUR_OF_DAY, 0);

  calendar.set(Calendar.MINUTE,0);

  calendar.set(Calendar.SECOND, 0);
  //第一次执行定时任务的时间
  Date date=calendar.getTime();

  //如果第一次执行定时任务的时间 小于 当前的时间

  //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。

  //if (date.before(new Date())) {

      //date = this.addDay(date, 1);

  //}
 
  Timer timer = new Timer();

  ServiceRewordAction task = new ServiceRewordAction();

  //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
  timer.schedule(task,date,PERIOD_DAY);

}


// 增加或减少天数

public Date addDay(Date date, int num) {

  Calendar startDT = Calendar.getInstance();

  startDT.setTime(date);

  startDT.add(Calendar.DAY_OF_MONTH, num);

  return startDT.getTime();

}
 

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics