
java定时器,留着用
发布日期:2025-03-28 00:45:15
浏览次数:6
分类:精选文章
本文共 1199 字,大约阅读时间需要 3 分钟。
在Java中,使用TimerTask
来执行定期任务时,需要确保任务在预定的时间点正确启动,并且可以正确处理首次执行时间。如果程序启动时,当前时间已经超过了设定的首次执行时间,则定时器会在下一个周期启动。
为了实现这一点,可以按照以下步骤进行:
导入必要的类:
import java.util.Timer;import java.util.TimerTask;import java.util.Calendar;import java.util.Date;
设置首次执行时间:使用Calendar
获取当前时间,并设置为预定的首次执行时间。如果当前时间已经超过了首次执行时间,则将首次执行时间设置为下一个24小时。
Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int day = calendar.get(Calendar.DAY_OF_MONTH);calendar.set(year, month, day, 9, 0, 0); // 设置为每天9:00:00Date firstTime = new Date(calendar.getTime());Date nowDate = new Date();long interval = firstTime.getTime() - nowDate.getTime();if (interval < 0) { calendar.add(Calendar.DAY_OF_MONTH, 1); firstTime = new Date(calendar.getTime()); interval = firstTime.getTime() - nowDate.getTime();}
创建Timer
实例并安排任务:使用Timer
安排定期任务,首次执行时间为firstTime
,间隔为24小时。
Timer timer = new Timer();long period = 24 * 60 * 60 * 1000L; // 24小时的毫秒数TimerTask task = new TimerTask() { @Override public void run() { //uggested定期任务逻辑 }};timer.schedule(task, firstTime, period);
处理取消定时任务:需要注意,当完成定期任务后,应及时取消Timer
实例,以避免资源泄漏。
// 取消定时任务timer.cancel();
这个设置方法确保了无论程序何时启动,定时任务都能正确地在预定时间执行。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月15日 14时41分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
液体加载动画
2019-03-24
CSS 海盗船加载特效
2019-03-24
web安全工具 御剑后台扫描&layer子域名挖掘机
2019-03-24
Laravel 直接返回404页面
2019-03-24
PHP 自定义错误与处理
2019-03-24
记一次内部系统渗透测试:小漏洞组合拳
2019-03-24
jquery-resizable使用
2019-03-24
常用元素操作的方法
2019-03-24
命名实体识别数据预处理
2019-03-25
230. 二叉搜索树中第K小的元素
2019-03-25
分布式是登录机制是如何实现的。
2019-03-25
Node.js+Navicat for MySQL实现的简单增删查改
2019-03-25
零基础学习 Vue3 教程 2021 年最新教程 免费视频教程(4 个视频)
2019-03-25
解决 matplotlib 中文显示乱码的问题
2023-01-23
解决打开 json 文件中文乱码的问题
2023-01-23
计算机网络基础:DHCP服务的部署
2023-01-23
计算机网络基础:DNS 部署与安全
2023-01-23
计算机网络基础:NAT 网络地址转换
2023-01-23