Timer实现定时任务
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实现定时任务相关推荐
- Java的定时器Timer和定时任务TimerTask应用以及原理简析
记录:272 场景:Java JDK自带的定时器Timer和定时任务TimerTask应用以及原理简析.在JDK工具包:java.util中可以找到源码,即java.util.Timer和java.u ...
- 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
一. 前奏-Timer类实现定时任务 在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类, DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是 ...
- 使用Timer执行定时任务
为什么80%的码农都做不了架构师?>>> 一.Timer概述 在Java开发中,会碰到一些需要定时或者延时执行某些任务的需求,这时,我们可以使用Java中的Timer类实现. ...
- python 定时任务
Python 定时任务 最近学习到了 python 中两种开启定时任务的方法,和大家分享一下心得. sched.scheduler() threading.Timer() sched 定时任务 使用s ...
- boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...
定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择 ...
- linux基础命令介绍十四:定时任务
在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务. 1.at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次.at ...
- android 实现定时任务,Android 实现定时任务的过程详解
在Android开发中,通过以下三种方法定时执行任务: 一.采用Handler与线程的sleep(long)方法(不建议使用,java的实现方式) 二.采用Handler的postDelayed(Ru ...
- 怎么在java上运行服务器,用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎样做???...
这个是我在网上找的不知道是不是你要的: java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了.设置定时任务很简单,用Timer类就 ...
- ASP.NET Core 2.2+Quartz.Net 实现Web定时任务
作者:Julian_酱 链接:http://www.cnblogs.com/mi12205599/p/10361763.html 作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路就 ...
最新文章
- 大数据计算引擎发展的四个阶段
- 技术分享-bounds的深入认识
- 2009.5.23软考_信息处理技术员 上午试题 答案 讨论
- MTK的LK代码异常向量表解析
- r语言r-shiny_使用Shiny和R构建您的第一个Web应用程序仪表板
- mapreduce shuffle过程问答
- 商汤OCR文本检测+识别开源(FOTS),TF实现NBA记分牌识别
- js对特殊字符转义、时间格式化、获取URL参数
- 前端静态页面html珠宝首饰电商平台网站购物商城系统.rar含源码
- python 股票估值_隐藏价值的角落:限售股AAP估值及PYTHON实现方法(上)
- 【外卖点餐平台项目遇到的问题】
- 可以显示九天天气情况的天气预报哦-LINUX下JAVA自制服务器端,申请公网IP,处理数据。。第二个项目
- 树莓派换源 bullseye
- 数字孪生技术海上风电场解决方案
- 如何修改C盘用户文件夹下的用户名
- UVA 11178-Morley's Theorem(计算几何_莫雷定理)
- 计算机毕业论文选题推荐|软件工程|系列八
- 【tools】Meterpreter 操作汇总
- 浅谈变电站设备信息采集管控系统组成、特点
- Unity的Gizmos画线