java实现定时提醒

我们可以使用Timer和TimerTask类在java中实现定时任务,详细说明如下:1、基础知识java.util.Timer一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。java.util.TimerTask由 Timer 安排为一次...
java实现定时提醒
我们可以使用Timer和TimerTask类在java中实现定时任务,详细说明如下:
1、基础知识java.util.Timer一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。java.util.TimerTask由 Timer 安排为一次执行或重复执行的任务。
2、示例代码该示例实现这样一个功能,在系统运行期间,每30分钟,系统自动检查连接池中的可用连接数,并输出到日志中。首先创建一个需要定时执行的任务类,这个任务类需要继承TimerTask,然后重写run()方法,run()方法体中的代码就是定时需要执行的操作,在本demo中,就是获取连接池中当前可用连接数,并输出到日志中,具体实现代码如下:public class TaskAvailableConnectNumber extends TimerTask { private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class); private ConnectionPool pool=ConnectionPool.getInstance(); @Override publicvoid run() { log.debug("当前连接池中可用连接数"+pool.getAvailableConnectNumber()); }}下面定义一个监听器,负责在应用服务器启动时打开定时器,监听器需要实现ServletContextListener接口,并重写其中的contextInitialized()和contextDestroyed()方法,代码如下:public class OnLineListener implements ServletContextListener{ private Logger log = Logger.getLogger(OnLineListener.class); Timer timer = null; //在应用服务器启动时,会执行该方法 publicvoid contextInitialized(ServletContextEvent arg0) { //创建一个定时器,用于安排需要定时执行的任务。 timer = new Timer(); //为定时器安排需要定时执行的任务,该任务就是前面创建的任务类TaskAvailableConnectNumber,并指定该任务每30分钟执行一次。 timer.schedule(new TaskAvailableConnectNumber(), 0, 30*60*1000); log.debug("启动定时器"); } //应用服务器关闭时,会执行该方法,完成关闭定时器的操作。public void contextDestroyed(ServletContextEvent arg0) { if(timer!=null){ timer.cancel();//关闭定时器 log.debug("-----定时器销毁--------"); } }}监听器要想正常运行,需要在web.xml文件中进行配置,配置信息如下:!-- 监听器配置开始 -- listener listener-class cn.sdfi.listen.OnLineListener /listener-class /listener!-- 监听器配置结束 --以上步骤完成后,一个简单的定时器就算开发完成了。2024-12-06
mengvlog 阅读 8 次 更新于 2025-07-19 13:45:50 我来答关注问题0
  • JCheckBox checkBox1 = new JCheckBox("晚上提醒"); //复选按钮 JLabel label = new JLabel("Ready to run."); //静态文本 //构造函数 public TestButtons() { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(new java.awt.FlowLayout());//为按钮...

  • 在body的noload里面有个setInterval定时器: js脚本://ajax判断是否有提醒数据 function timedAlert(){ .ajax({ type: "get",url: "${basePath}/plugins/km/headlink/checkNoteCount.jspx",dataType: "text",cache: false,success: function(data){ alert(data);if(data=='0'){ alert(1);...

  •  僪鸿彩Rq java定时器生日提醒 遇到周末怎么判断

    很简单,把员工生日坐在表里,然后另外放一个表做提醒。每年12/31自动重新算一下明年所有人生日的提醒时间,算的时候判断周末就好。至于节日也要处理的话。那么还需要一个节日表。在12/31日前把所有节日输入表里。计算的时候也一样判断就好。不过还是建议一点,生日提醒应该提前,周日生日也应该在周五提醒...

  • 加入定时任务,定期执行检查处理,发现库存不足,发送邮件/短信提示。

  •  校企律说法 java编写。如果当前时间小于上午9:00,执行一文件list1?

    通过比较两个`Calendar`实例,代码可以判断当前时间是否早于早上9点。如果是这样,那么可以执行一些特定的操作;否则,执行其他操作。这种基于时间的条件判断在自动化任务调度、定时提醒等场景中非常有用。总的来说,`TimeProcessor`类提供了方便的时间处理和比较功能,是处理与时间相关任务的得力助手。无论是...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部