Java Web实现添加定时任务的方法示例
作者:独坐一隅 发布时间:2023-11-25 02:12:15
标签:Java,Web,定时任务
本文实例讲述了Java Web实现添加定时任务的方法。分享给大家供大家参考,具体如下:
定时任务时间控制类
/**
* 定时任务时间控制
*
* @author liming
*
*/
public class TimerManager {
// 时间间隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定制每日00:00执行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date = calendar.getTime(); //执行定时任务的时间
// 在启动服务器时如果第一次执行定时任务的时间小于当前的时间任务会立即执行。
// 因此为了防止重启服务器造成任务重复执行,需要将执行定时任务的时间修改为第二天。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}
Timer timer = new Timer();
DailyDataTimerTask task = new DailyDataTimerTask();
// 任务执行间隔。
timer.schedule(task, date, PERIOD_DAY);
}
// 增加或减少天数
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}
定时任务操作主体类
/**
* 定时任务操作主体
*
* @author liming
*
*/
public class DailyDataTimerTask extends TimerTask {
private static Logger log = Logger.getLogger(DailyDataTimerTask.class);
@Override
public void run() {
try {
//在这里写你要执行的内容
System.out.println("come in DailyDataTimerTask");
} catch (Exception e) {
log.info("-------------解析信息发生异常--------------");
}
}
}
定时任务 *
/**
* 定时任务 *
*
* @author liming
*
*/
public class DailyDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent event) {
}
}
web.xml添加 *
<!--加载每日数据更新定时任务文件-->
<listener>
<listener-class>
com.honsto.web.job.DailyDataTaskListener
</listener-class>
</listener>
希望本文所述对大家java程序设计有所帮助。
来源:http://blog.csdn.net/nangongyanya/article/details/48829175
0
投稿
猜你喜欢
- 配置文件中设置通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在applicat
- 之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,
- 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方
- google benchmark已经为我们提供了类似的功能,而且使用相当简单。具体的解释在后面,我们先来看几个例子,我们人为制造几个时间复杂
- 此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!!一、多数据源应用场景:1.配置文件配置多数据源,如默认
- 本文实例讲述了Jaxb2实现JavaBean与xml互转的方法。分享给大家供大家参考,具体如下:一、简介JAXB(Java Architec
- @ConfigurationProperties加载外部配置@ConfigurationProperties可以将外部配置文件(比如appl
- 一、问题Flutter原有的图片缓存机制,是通过PaintingBinding.instance!.imageCache来管理缓存的,这个缓
- 1. 什么是对象池对象池,顾名思义就是一定数量的已经创建好的对象(Object)的集合。当需要创建对象时,先在池子中获取,如果池子中没有符合
- 通过本篇文章主要给大家讲解了在JAVA开发中Servlet3.0异步处理遇到的问题以及处理办法,以下是具体内容:Servlet 3.0 开始
- 一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字按惯例 先上图:class MyBody extends StatefulWid
- 1、注解@PathVariable:将请求url中的占位符参数与控制器方法入参绑定起来(Rest风格请求)@RequestHeader:获取
- 项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来。1,新建.NET WebService。只在
- 相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车;就像我们平时去超市买
- 自然排序TreeSet集合在存储数据时有一定的顺序,它会将一些数据进行比较,比较调用的是comparaTo()方法,该方法是在Compara
- 一、 搭建struts2环境在myeclipse下,右击项目->MyEclipse->Project Facets->in
- 这篇文章主要介绍了java读取xml配置参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 引言应用 Java 的开源库,编写一个搜索引擎,这个引擎能爬取一个网站的内容。并根据网页内容进行深度爬取,获取所有相关的网页地址和内容,用户
- 合成聚合复用原则合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP
- 本文介绍了Java实现动态获取图片验证码的示例代码,分享给大家,具体如下:import javax.imageio.ImageIO;impo