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


猜你喜欢
- AndroidStudio升级后, 新建类变成了下面这个样子, 并且默认还没有修饰符, 一堆大写的英文看的我一脸懵逼, 后来在stackov
- 闹钟的简单实现,只有显示时间和设置闹钟。AlarmViewpackage com.example.lenovo.clock2; import
- 最近在鼓捣spring -boot ,真好用,学习到jpa.通过生成Entity 文件,能够快速的生成数据库,并且使用JpaReposito
- QueryWrapper 添加limit其实是在sql的最后加上 limit 相关的语句。QueryWrapper wrapper = ne
- java模拟银行ATM机操作(基础版),供大家参考,具体内容如下实现的功能需求:修改密码之后,就会自动退出登录,再重新登录,若登录成功才能验
- 本文实例为大家分享了Android PopupWindow增加半透明蒙层的具体代码,供大家参考,具体内容如下先看效果图:实现代码:BaseP
- 本文实例讲述了C#调用SQLite的方法。分享给大家供大家参考。具体分析如下:一、SQLite简介:当我们用到海量数据时一般会用Oracle
- Excelapache 为 java开发者们提供了一套excel表格读写的工具:POI ,对于一个小白来说每次读写使用POI需要写一套复杂的
- 使用linq把多列的List转化为只有指定列的List1、方式一2、方式二
- public class FileAccess{//储存所有文件夹名private ArrayList dirs;public FileAc
- Java关键字及其作用一、 总览:访问控制private protected public类,方法和变量修饰符abstract class
- 经常有同学问到,使用Android能不能开发游戏呢?能开发那些游戏呢?由于操作系统和开发语言局限,一般开发安卓手机游戏,我们很少使用其自带语
- 具体代码如下所示:package com.example.studyapplication.fragment;import android.
- 查看和修改线程优先级1.题目JAVA中每个线程都有优化级属性,默认情况下,新建的线程和创建该线程的线程优先级是一样的。当线程调度器选择要运行
- C#开发WinForm,如何实现TextBox获取输入焦点时自动全选?&nbs
- 最近的一个Android需要用到扫码功能,用的是Zxing开源库。Zxing的集成就不说了,但是Zxing默认的是横屏扫码,在实际生产中并不
- 首先看一下泛型的基本语法访问修饰符 返回类型 泛型方法名 <T>(T 参数)1):无法在泛型方法内部给任何 T 类型创建实例的对
- 本文实例讲述了C#基于委托实现多线程之间操作的方法。分享给大家供大家参考,具体如下:有的时候我们要起多个线程,更多的时候可能会有某个线程会去
- 摘要:用spring-boot开发RESTful API非常的方便,在生产环境中,对发布的API增加授权保护是非常必要的。现在我们来看如何利
- 举例:存在一个类:Public Class Student{ public string name; public int age;}Stu