定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的。
1、看下面代码:
1 public void TestUserNvrConnectOnline() {
2 Timer timer = new Timer(true);
3 timer.schedule(new TimerTask() {
4 public void run() {
5 //你要定时执行的功能
6 isUserNvrConnectLast();
7 }
8 }, 0, 60 * 1000);
9
10 }
View Code
周期执行任务,Timer.schedule(TimerTask task,long firstTime,long period),参数task是要执行代码的主体,参数firstTime是Timer在系统启动后第一次运行的时间毫秒值,参数period是代码循环运行的时间间隔,每次最少等待period执行一次。
2、Timer还有其他几种使用方式,基本上大同小异,比如:
private Set unitTimeSet = new HashSet<>(24);//每天更新整点数,把已经检查的时间记录下来
1 public void checkDeviceDeopped() {
2 Calendar calendar = Calendar.getInstance();
3 //此时要在 第一次执行定时任务的时间加一小时,以便此任务在下个时间点执行。
4 calendar.add(Calendar.HOUR_OF_DAY,1);
5 calendar.set(Calendar.MINUTE, 0);
6 calendar.set(Calendar.SECOND, 0);