web.xml配置Listener

<listener><listener-class>com.prison.controller.TimerManager</listener-class></listener>

任务类,继承TimerTask类:

package com.prison.util;import java.util.TimerTask;import com.prison.service.UserService;public class Task extends TimerTask{private UserService userService;public Task(UserService userService){this.userService = userService;}public Task(){super();}@Overridepublic void run() {try {System.out.println("进来啦哈哈哈哈哈哈");} catch (Exception e) {System.out.println("异常了");}}}

实现JAVA EE的监听接口,定时调用任务类:

package com.prison.controller;import java.util.Calendar;
import java.util.Date;
import java.util.Timer;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.support.WebApplicationContextUtils;import com.prison.service.UserService;
import com.prison.util.Task;@Controller
@RequestMapping(value="/Timer")
public class TimerManager implements ServletContextListener{//时间间隔(一天)  private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;Timer timer = null;@Overridepublic void contextInitialized(ServletContextEvent sce) {Calendar calendar = Calendar.getInstance();  calendar.set(Calendar.HOUR_OF_DAY, 11); //凌晨1点  calendar.set(Calendar.MINUTE, 1);  calendar.set(Calendar.SECOND, 0);  Date date=calendar.getTime(); //第一次执行定时任务的时间  //如果第一次执行定时任务的时间 小于当前的时间  //此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。  if (date.before(new Date())) {  date = this.addDay(date, 1);  }UserService userService = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext()).getBean(UserService.class);timer = new Timer(true);timer.schedule(new Task(userService), date, PERIOD_DAY);}@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}// 增加或减少天数  public Date addDay(Date date, int num) {  Calendar startDT = Calendar.getInstance();  startDT.setTime(date);  startDT.add(Calendar.DAY_OF_MONTH, num);  return startDT.getTime();  }}

Timer实现定时任务相关推荐

  1. Java的定时器Timer和定时任务TimerTask应用以及原理简析

    记录:272 场景:Java JDK自带的定时器Timer和定时任务TimerTask应用以及原理简析.在JDK工具包:java.util中可以找到源码,即java.util.Timer和java.u ...

  2. 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现

    一. 前奏-Timer类实现定时任务 在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类, DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是 ...

  3. 使用Timer执行定时任务

    为什么80%的码农都做不了架构师?>>>    一.Timer概述 在Java开发中,会碰到一些需要定时或者延时执行某些任务的需求,这时,我们可以使用Java中的Timer类实现. ...

  4. python 定时任务

    Python 定时任务 最近学习到了 python 中两种开启定时任务的方法,和大家分享一下心得. sched.scheduler() threading.Timer() sched 定时任务 使用s ...

  5. boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...

    定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择 ...

  6. linux基础命令介绍十四:定时任务

    在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务. 1.at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次.at ...

  7. android 实现定时任务,Android 实现定时任务的过程详解

    在Android开发中,通过以下三种方法定时执行任务: 一.采用Handler与线程的sleep(long)方法(不建议使用,java的实现方式) 二.采用Handler的postDelayed(Ru ...

  8. 怎么在java上运行服务器,用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎样做???...

    这个是我在网上找的不知道是不是你要的: java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了.设置定时任务很简单,用Timer类就 ...

  9. ASP.NET Core 2.2+Quartz.Net 实现Web定时任务

    作者:Julian_酱 链接:http://www.cnblogs.com/mi12205599/p/10361763.html 作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路就 ...

最新文章

  1. 大数据计算引擎发展的四个阶段
  2. 技术分享-bounds的深入认识
  3. 2009.5.23软考_信息处理技术员 上午试题 答案 讨论
  4. MTK的LK代码异常向量表解析
  5. r语言r-shiny_使用Shiny和R构建您的第一个Web应用程序仪表板
  6. mapreduce shuffle过程问答
  7. 商汤OCR文本检测+识别开源(FOTS),TF实现NBA记分牌识别
  8. js对特殊字符转义、时间格式化、获取URL参数
  9. 前端静态页面html珠宝首饰电商平台网站购物商城系统.rar含源码
  10. python 股票估值_隐藏价值的角落:限售股AAP估值及PYTHON实现方法(上)
  11. 【外卖点餐平台项目遇到的问题】
  12. 可以显示九天天气情况的天气预报哦-LINUX下JAVA自制服务器端,申请公网IP,处理数据。。第二个项目
  13. 树莓派换源 bullseye
  14. 数字孪生技术海上风电场解决方案
  15. 如何修改C盘用户文件夹下的用户名
  16. UVA 11178-Morley's Theorem(计算几何_莫雷定理)
  17. 计算机毕业论文选题推荐|软件工程|系列八
  18. 【tools】Meterpreter 操作汇总
  19. 浅谈变电站设备信息采集管控系统组成、特点
  20. Unity的Gizmos画线

热门文章

  1. python爬虫——提取抓取内容(3)经典语录网语录抓取
  2. Comsol电磁波模型:金属超表面光栅,TE TM偏振下斜入射不同衍射级反射光谱计算
  3. Linux详解寄存器
  4. 嵌入式学习Java第一课
  5. 数字信号处理--几种常见的数字滤波器实现原理
  6. Flink流计算引擎
  7. Linux 内核开发 - NetFilter
  8. MVC:用bShare插件分享内容至QQ空间
  9. oracle pls 00905,【案例】Oracle报错PLS-00714 PLS-00951原因和解决办法笔记
  10. onpaste事件的浅谈