java 定时执行任务

1.使用java并发库编写定时程序。 如定时上传文件,定时删除日志,定时执行sql 等

下面的程序在每天的23:20:30 后,执行一次具体任务
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.concurrent.Executors;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class MyTimer implements Runnable{
 //执行标志位 true:可以执行,false:不可以执行
 private boolean flag = true;
 
 public int getCurrTime(){
  Calendar cal = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("HHmmss");
  return Integer.valueOf(sdf.format(cal.getTime()));
 }
 
 @Override
 public void run() {
  //转天状态改变
  if((getCurrTime() < 1)&&(!flag)){
   System.out.println("======"+getCurrTime());
   flag = true;
  }
  //ball 模式
  if(getCurrTime() < 232030){
   System.out.println("return!!!");
   return ;
  }
  
  if(flag){
   //执行具体任务
   Calendar cal = Calendar.getInstance();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   System.out.println("cur date::"+sdf.format(cal.getTime()));
   flag = false;

  }else{
   System.out.println("==============false-------------");
  }
 }

 public static void main(String args[]) {

  try {
   ScheduledExecutorService exec = Executors.newScheduledThreadPool(1);
   exec.scheduleAtFixedRate(new MyTimer(), 1, 2, TimeUnit.SECONDS);
  } catch (RejectedExecutionException e) {
   e.printStackTrace();
  }
  
  
  
 }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值