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();
}
} }

最新文章

  1. 【WCF】使用“用户名/密码”验证的合理方法
  2. golang print struct with key
  3. Web页面多对象多文档事件冲突的解决方案
  4. 删除单链表倒数第n个节点
  5. PHP 链式操作
  6. Cocos中的观察者设计模式与通知机制
  7. netbeans环境中使用maven搭建jsf、primefaces工程
  8. 读懂IL代码(二)
  9. HDU 4099 Revenge of Fibonacci (数学+字典数)
  10. java二维数组学习(转)
  11. 201521123109《java程序设计》第六周学习总结
  12. PHPstorm 如何新增项目
  13. 201421123042 《Java程序设计》第3周学习总结
  14. mixins混入
  15. 【kindle笔记】之 《明朝那些事儿》-2018-7-1
  16. R apply() 函数和 tapply() 函数
  17. 第18月第2天 ios博客
  18. 正则表达式写法:Java和Js比较
  19. Java中 堆 栈,常量池等概念解析(转载)
  20. 洛谷P3964 [TJOI2013]松鼠聚会(坐标系变换)

热门文章

  1. H5总结
  2. Codeforces Round #298 (Div. 2)--D. Handshakes
  3. html,css,jquery,JavaScript
  4. ASP.NET MVC Area 区域
  5. 数据库常见索引解析(B树,B-树,B+树,B*树,位图索引,Hash索引)
  6. 检查.net dll构建的目标平台是any cpu、x86、x64
  7. Windows核心编程:第2章 字符和字符串处理
  8. C# 一些代码小结--UI操作
  9. dev gridview 设置分组
  10. EF架构获取数据时报错:The ObjectContext instance has been disposed and can no longer be used for operations that require a connection. Do you want to correct the value?