java 定时任务-servlet
在web.xml中配置监听类。
<listener>
<listener-class>com.skin.generate.action.TaskManager</listener-class>
</listener>
监听时间Properties文件配置。
#定时任务配置文件
#定时刷新数据库实例时间(毫秒) 24*60*60*1000(一天)
task.databaseInstance.time=86400000
#定时刷新数据库实例当天的几点开始执行1
task.databaseInstance.clock=1
#定时刷新数据库实例当天的某分钟开始执行
task.databaseInstance.min=10
实现监听类,监听类实现ServletContextListener,contextInitialized 方法会在侦听器初始化的时候调用。
import java.util.Calendar;
import java.util.Date;
import java.util.Properties;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.skin.webcat.util.ProPertiesUtils;
public class TaskManager implements ServletContextListener{
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent arg0) {
Properties proPerties = ProPertiesUtils.getProPerties("task.properties");
timer = new Timer();
CheckDatabaseInstanceTask msendTask = new CheckDatabaseInstanceTask();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf((String) (proPerties.get("task.databaseInstance.clock"))));
calendar.set(Calendar.MINUTE, Integer.valueOf((String) (proPerties.get("task.databaseInstance.min"))));
calendar.set(Calendar.SECOND, 0);
Date date = calendar.getTime(); // 第一次执行定时任务的时间
if (date.before(new Date())) {
date = this.addDay(date, 1);
}
timer.schedule(msendTask, date, Integer.valueOf((String) (proPerties.get("task.databaseInstance.time"))));
} @Override
public void contextDestroyed(ServletContextEvent arg0) {
timer.cancel();
} public Date addDay(Date date, int num) {
Calendar startDT = Cale ndar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
} }
执行任务类实现,其继承啦jdk自带的TimerTask类,在run方法中写定时任务执行的内容。
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
public class CheckDatabaseInstanceTask extends TimerTask{
/**
* 任务逻辑处理方法
*/
@Override
public void run() {
System.out.println("我是处理任务的方法");
}
}
java 定时任务-servlet的更多相关文章
- atititt.java定时任务框架选型Spring Quartz 注解总结
atititt.java定时任务框架选型Spring Quartz 总结 1. .Spring Quartz (ati recomm) 1 2. Spring Quartz具体配置 2 2.1. 增 ...
- java定时任务
java定时任务实现方法: public class TimingTask { private static int count = 0; private static SpiderService s ...
- Ed Burns谈HTTP/2和Java EE Servlet 4规范
在2015年JavaLand大会上,Ed Burns展示了Java EE Servlet 4.0规范(JSR 369)的概要,演讲的重点在于Java EE平台对HTTP/2的支持.HTTP/2旨在解决 ...
- [转][JAVA]定时任务之-Quartz使用篇
[BAT][JAVA]定时任务之-Quartz使用篇 定时任务之-Quartz使用篇 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与 ...
- 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应
http://blog.csdn.net/panjunbiao/article/details/8615880 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应
- Java定时任务器
java定时任务,每天定时执行任务.以下是这个例子的全部代码. public class TimerManager { //时间间隔 private static final long PERIOD_ ...
- 如何使用Java、Servlet创建二维码
归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指 ...
- java之servlet入门操作教程一续
本节主要是在java之servlet入门操作教程一 的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...
- Quartz实现JAVA定时任务的动态配置
什么是动态配置定时任务? 首先说下这次主题,动态配置.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 定时任务实现方式千人千种,不过基础的无外乎 1.JDK 的Timer类 2. ...
随机推荐
- centos查看CPU的数量
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- ubuntu scp命令或者用root连接ssh提示:Permission denied, please try again.错误
1.su - #!!! 2.vi /etc/ssh/sshd_config 3.PermitRootLogin yes # 找到此字段,改为此行所示 4./etc/init.d/ssh restart ...
- 019--python内置函数
一.内置高阶函数 map函数:接收两个数据 函数和序列,map()将函数调用'映射'到序列身上,并返回一个含有所有返回值的一个列表 num1 = [1,2,3,4,5] num2 = [5,4,3,2 ...
- git stash和git stash pop(转载)
转自:http://www.cnblogs.com/highriver/archive/2012/01/05/2313808.html zz: http://blog.csdn.net/herbert ...
- React 从入门到进阶之路(八)
之前的文章我们介绍了 React中的组件.父子组件.React props父组件给子组件传值.子组件给父组件传值.父组件中通过refs获取子组件属性和方法.接下来我们将介绍 React propTyp ...
- hdoj2796
题意: 1.在每一堆里顶部的coin的size必须大于这一堆其他的coin: 2.在每一堆里顶部的coin的size必须大于前面堆的顶部的coin: 3.在每一堆里顶部的coin的num必须大于前面堆 ...
- HDOJ4857【拓扑排序】
首先 CLJ ORZ 这道题做了两次,第一次瞎搞... 第二次,好吧,骄傲地说水过... 题意:不说了: 思路: 题目默认是小的在前面,那么就是反向建图,每次排序拿大的出来: 第一次做的时候,我记得我 ...
- 进程与线程(3)- python实现多线程
参考链接: https://www.jianshu.com/p/415976668b97?utm_campaign=maleskine&utm_content=note&utm_med ...
- size_t与size_type区别
size() 标准库string里面有个函数size,用来返回字符串中的字符个数,具体用法如下: string st("The expense of spirit\n");cou ...
- offsetLeft 与 left的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...