java的定时器是什么_java定时器timer是什么?该如何实现?
小伙伴们知道java定时器timer吗?本篇文章小编就来带大家了解一下它的概念及实现方法。
通俗的说,我们可以将Timer当成是一种工具,线程会用它安排以后在后台线程中执行的任务。嫩够安排任务执行一次或定期重复执行。但实际上它就是个线程,只是定时调度所拥有的TimerTasks而已。
TimerTask具体来说就是一个抽象类,它的子类会由 Timer
安排一次执行或重复执行的任务。实际上就是一个拥有run方法的类,只是将需要定时执行的代码放到run方法体内。
实现private Set unitTimeSet = new HashSet (24); //每天更新整点数,把已经检查的时间记录下来
public void checkDeviceDeopped()
{
Calendar calendar = Calendar.getInstance();
//此时要在 第一次执行定时任务的时间加一小时,以便此任务在下个时间点执行。
calendar.add(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
java.util.Date date = calendar.getTime(); //第一次执行定时任务的时间
Timer timer = new Timer(true);
timer.schedule(new TimerTask()
{
public void run()
{
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if (hour == 0)
{
unitTimeSet.clear();
}
if (hour % unitTime == 0 && !unitTimeSet.contains(hour))
{
Session session = sessionFactory.openSession();
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
java.util.Date endTime = cal.getTime();
cal.add(Calendar.HOUR_OF_DAY, -1);
java.util.Date startTime = cal.getTime();
for (String deviceId: mapNvr.keySet())
{
//查询设备在指定时间内的掉线次数
Integer offLineNum = 0;
try
{
offLineNum = (Integer) session.createQuery("SELECT COUNT(*) FROM SystemLog WHERE workerid= :deviceId AND dt<= :endTime AND dt>= :startTime ")
.setParameter("deviceId", deviceId)
.setParameter("endTime", endTime, TemporalType.TIMESTAMP)
.setParameter("startTime", startTime, TemporalType.TIMESTAMP)
.uniqueResult();
}
catch (Exception e)
{
e.printStackTrace();
}
if (offLineNum >= 10)
{
//发送邮件
try
{
CompletableFuture.runAsync(() - >
{
sendMail("NUM", deviceId);
});
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
unitTimeSet.add(hour);
}
}, date, 60 * 60 * 1000);
}
以上就是本篇文章的所有内容,更多有关java基础的详细知识可以关注我们来了解详情。
推荐阅读:
java的定时器是什么_java定时器timer是什么?该如何实现?相关推荐
- java 定时器10秒_Java定时器的使用(Timer)
java定时器的使用(Timer) 1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. priv ...
- java 定时器 每天凌晨_java定时器 每天凌晨 固定执行一个方法
满意答案 x11893497 2014.05.28 采纳率:40% 等级:9 已帮助:312人 二.如果是需要Tomcat启动就能执行,不需要main方法的定时器的话: web.xml里面需要这 ...
- java定时器怎么写_java定时器代码该怎么写?
Java中定时器的实现小伙伴们了解过吗?对于一些特殊的代码是需要定时执行的,下面来看看定时器该如何编写吧. 主方法//服务器启动时开始调用启动 package com.casco.csmis.szdc ...
- java 每天执行一次_java定时器每隔5秒执行一次任务要怎么编写?
题目:使用Java定时器,实现每隔五秒执行一次,下面我们一起来看看它的实现方法. 例:public static void main(String[] args) { SimpleDateFormat ...
- java一定时间间隔的定时任务_Java 定时任务---Timer
本文来自我一个朋友的个人博客(希望各位以后多多支持):https://www.liupeng.mobi/archives/777 一.Timer类 在java中一个完整的定时任务需要由Timer和Ti ...
- java wait定时_java定时器的使用(Timer)
java定时器的使用(Timer) 1.在应用开发中,常常须要一些周期性的操作,比方每5分钟运行某一操作等. 对于这种操作最方便.高效的实现方式就是使用java.util.Timer工具类. priv ...
- Java多线程学习笔记20之定时器Timer
详细代码见:github代码地址 本节内容: 定时器Timer的使用及分析 1) 如何实现指定时间执行任务 2) 如何实现按指定周期执行任务 第五章 定时器Timer 定时/计划功能在移动开发领域使用 ...
- java定时器配置_java定时器实现如何配置?
定时器在一些时候会起到不可忽视的作用,本篇文章我们就来通过一些例子详细了解一下定时器的实现. 例1:import java.util.TimerTask; public class TimeTast ...
- java定时器 并发_【java多线程与并发库】— 定时器的应用 | 学步园
定时器的应用 1. 定时器主要涉及到两个类(java.util包中) @->public class Timer extendsObject (一种工具,线程用其安排以后在后台线程中执行的任务 ...
最新文章
- 实战:使用 OpenCV 的自动驾驶汽车车道检测(附代码)
- 心生想往 ... ...
- 使用export/import导出和导入docker容器
- Linux学习总结(76)—— Shell 脚本日志技巧
- java map中套map_Java Map – Java中的Map
- 最直白的编译原理-词法分析(清华-王书3版)
- iOS 一键加入QQ群(项目常用)
- 双线服务器托管的三大优势
- 直播源php代理用什么主机,流媒体直播系统_流媒体直播php源码_流媒体直播源码...
- 如果生活将我们拆散了
- 绘制奥林匹克五环旗。
- 工程师必备硬件EMC设计规范
- 马哥教育SRE笔记【作业】week05
- 项目(二)Lenovo商城
- 离职,见人品,显格局
- 科普篇:TD-LTE
- 程序员遇到 Bug 时的 30 个反应,你是哪一种?
- 【Java项目】MVC教学评价系统
- 【uni-app】H5的返回拦截经验分享
- 建设智能温室大棚的条件