java监听器、定时器的使用
1、监听器
在web.xml配置
- <!-- 时间任务 -->
- <listener>
- <listener-class>
- com.hk.common.timer.TimeListener
- </listener-class>
- </listener>
在java中使用
- package com.hk.common.timer;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import com.hk.common.api.APi;
- /**
- * 目的为了拿到 servletContext
- *
- * @author flm
- * 2017年12月11日
- */
- public class TimeListener implements ServletContextListener {
- //
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- // 要处理的 事件
- }
- @Override
- public void contextDestroyed(ServletContextEvent arg0) {
- // 对象销毁 时调用
- }
- }
2、定时器
1、在特定时间执行任务,只执行一次 单位(毫秒)
- public void schedule(TimerTask task,Date time)
2、在特定时间之后执行任务,只执行一次 单位(毫秒)
- public void schedule(TimerTask task,long delay)
3、指定第一次执行的时间,然后按照间隔时间,重复执行 单位(毫秒)
- public void schedule(TimerTask task,Date firstTime,long period)
4、在特定延迟之后第一次执行,然后按照间隔时间,重复执行 单位(毫秒)
- public void schedule(TimerTask task,long delay,long period)
参数:
delay: 延迟执行的毫秒数,即在delay毫秒之后第一次执行
period:重复执行的时间间隔
5、第一次执行之后,特定频率执行,与3同
- public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
6、在delay毫秒之后第一次执行,后按照特定频率执行
- public void scheduleAtFixedRate(TimerTask task,long delay,long period)
创建一个定时器任务
- package com.hk.common.timer;
- import java.util.Timer;
- import javax.annotation.PostConstruct;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Controller;
- import com.hk.user.service.UserService;
- /**
- * 定时器
- * @author flm
- * 2017年12月11日
- */
- @Controller
- public class TimerController {
- public static final long DELAY_TIME = 500; // 延时 时间执行(毫秒)
- public static final long PERIOD_TIME = 300000; // 每隔 多少毫秒 执行(毫秒)
- @Resource private UserService userService;
- // 加载完类 加载此方法
- @PostConstruct
- public void init() {
- Timer timer = new Timer();
- // 启动一个线程 执行任务
- TimerManager task = new TimerManager(userService);
- // 安排指定的任务在指定的时间开始进行重复的固定延迟执行。
- timer.schedule(task, DELAY_TIME, PERIOD_TIME);
- }
- }
创建一个线程 处理数据
- package com.hk.common.timer;
- import java.util.TimerTask;
- import javax.servlet.ServletContext;
- import org.apache.log4j.Logger;
- import com.hk.common.api.APi;
- import com.hk.user.service.UserService;
- public class TimerManager extends TimerTask {
- private static Logger log = Logger.getLogger(TimerTask.class);
- private UserService userService;
- public TimerManager(UserService userService) {
- this.userService=userService;
- }
- @Override
- public void run() {
- try {
- System.out.println(servletContext.getAttribute("处理数据...."));
- } catch (Exception e) {
- log.info("# -------------解析信息发生异常--------------");
- e.printStackTrace();
- }
- }
- }
java监听器、定时器的使用的更多相关文章
- Java进阶(十八)Java实现定时器(Timer)
Java实现定时器(Timer) 绪 在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类.java.u ...
- JAVA监听器原理
http://blog.csdn.net/longyulu/article/details/25054697 JAVA监听器原理 标签: 监听器 2014-05-05 15:40 9070人阅读 评论 ...
- java Quartz定时器任务与Spring task定时的几种实现,
java Quartz定时器任务与Spring task定时的几种实现 基于java 的定时任务实现, Quartz 时间详细配置 请查阅 http://www.cnblogs.com/si ...
- JAVA Timer定时器使用方法(二)
JAVA Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...
- JAVA监听器Listener
JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...
- java之定时器任务Timer用法
在项目开发中,经常会遇到需要实现一些定时操作的任务,写过很多遍了,然而每次写的时候,总是会对一些细节有所遗忘,后来想想可能是没有总结的缘故,所以今天小编就打算总结一下可能会被遗忘的小点: 1. pub ...
- java中定时器总结
java实现定时器的四种方式: 一. /** * 延迟20000毫秒执行 java.util.Timer.schedule(TimerTask task, long delay) */ public ...
- Java监听器Listener使用说明
转载:http://blog.csdn.net/meng2602956882/article/details/13511587 1.什么是Java监听器 监听器也叫Listener,是Servlet的 ...
- JAVA Timer定时器使用方法
JAVA Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...
- Java监听器listener的介绍
Java监听器listener的介绍 listener 能做什么 当web中某些动作发生之后,服务器就调用listener中对应的方法. 内部机制 接口回调 Web监听器 步骤 创建需要的监听器类,实 ...
随机推荐
- hive 动态分区与混合分区
hive的分区概念,相信大家都非常了解了.通过将数据放在hdfs不同的文件目录下,查表时,只扫描对应分区下的数据,避免了全表扫描. 提升了查询效率. 关于hive分区,我们还会用到多级分区.动态分区. ...
- 前端开发 - JavaScript 词法分析
JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 1.分析函数的参数 2.分析函数的变量声明 3.分析函数的函数声明表达式 具体步骤如下: 函数在运行的瞬间,生成 ...
- 电容器的ESR
电容器的ESR(等效串联电阻)Equivalent Series Resistance 作为开关电源的输出整流滤波电容器,电容量往往是首要的选择,铝电解电容器的电容量完全可以满足要求,而ESR则 ...
- MySQL表名大小写设置
1 简介 在MySQL中,数据库对应数据目录中的目录.数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎).因此,所使用操作系统的大小写敏感性决定了数据库名和表名的大小 ...
- SQL SERVER的锁机制(一)——概述(锁的种类与范围)
锁定:通俗的讲就是加锁.锁定是 Microsoft SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制. 定义:当有事务操作时,数据库引擎会要求不同类型的锁定,如相关数 ...
- Python 学习第二章
本章内容 数据类型 数据运算 表达式 if ...else 语句 表达式 for 循环 表达式 while 循环 一.数据类型 在内存中存储的数据可以有多种类型. 在 Python 有五个标准的数据类 ...
- Windows的cmd窗口显示utf8字符
用XeLaTeX的时候,查字体需要用fc-list命令,XeLaTeX用的都是utf编码,所以fc-list输出的字体信息也是utf编码.因此需要把cmd窗口也改成utf8编码才能看到这些字体信息.U ...
- .NET高级代码审计(第五课) .NET Remoting反序列化漏洞
0x00 前言 最近几天国外安全研究员Soroush Dalili (@irsdl)公布了.NET Remoting应用程序可能存在反序列化安全风险,当服务端使用HTTP信道中的SoapServerF ...
- Http/Https抓包工具Charles最新版破解教程(Windows|Mac)
Charles介绍 Charles是一款强大的http/https抓包工具,可以抓取各种数据请求,查看请求的头信息,请求信息,返回信息等.本文主要介绍Charles的破解过程,包括Windows平台和 ...
- libffi-dev : 依赖: libffi6 (= 3.2.1-4) 但是 3.2.1-4kord 正要被安装
原文链接:https://blog.csdn.net/u013992330/article/details/85135629 中标麒麟安装python库:sshtunnel 的时候提示缺少ffi.h文 ...