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 阅读 430 次 更新于 2025-09-10 18:56:49 我来答关注问题0
  • 在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);...

  • 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());//为按钮...

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

  •  抛下思念17 Android8 后台定时提醒通知

    在后台进程中创建一个定时器,我这里使用的是RxJava,创建了一个每隔1分钟就执行一次的定时任务。需要注意的是,这里创建的是一个后台 进程,进程 ...和当前进程不一样的进程,在这个独立的进程中,不可以使用应用进程中的全局变量,否则会产生空指针异常。比如取Application就是空。当然,你可以使用跨...

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

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

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

Java相关话题

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