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. ...
随机推荐
- Table View Programming Guide for iOS---(一)---About Table Views in iOS Apps
About Table Views in iOS Apps Table views are versatile user interface objects frequently found in i ...
- 数据库连接 ADO,OLEDB,ODBC,DAO的区别 转载
http://blog.csdn.net/ithomer/article/details/6624684 ODBC(Open Database Connectivity,开放数据库互连) 1992年, ...
- 我的Android笔记(十)—— ProgressDialog的简单应用,等待提示 (转载)
转自:http://blog.csdn.net/barryhappy/article/details/7376231 在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容…… 这时候就 ...
- Codeforces34C【尺取】
题意: 输入一系列的数,连续数字则输出连续区间 看第一个案例就很明显 思路: 输入字符串输入,预处理一下. 写了个挫尺取- 贴一发挫code--. #include <bits/stdc++.h ...
- hdoj1028;他们说这题叫dp...
#include<cstdio> #include<string> #include<iostream> #include<vector> #inclu ...
- 洛谷P3577 [POI2014]TUR-Tourism
给定一个n个点,m条边的无向图,其中你在第i个点建立旅游站点的费用为Ci.在这张图中,任意两点间不存在节点数超过10的简单路径.请找到一种费用最小的建立旅游站点的方案,使得每个点要么建立了旅游站点,要 ...
- ExtWebComponents
我们很高兴地宣布Sencha ExtWebComponents的早期版本现已推出.ExtWebComponents提供了数百个预构建的UI组件,您可以轻松地将它们集成到使用任何框架构建的Web应用程序 ...
- memcached原理及介绍
memcached是一种缓存技术,在存储在内存中(高性能分布式内存缓存服务器).目的 : 提速.(传统的都是把数据保存在关系型数据库管理系统既RDBMS,客户端请求时会从RDBS中读取数据并在浏览器中 ...
- JQuery动态添加表格,然后动态删除不成功问题
背景: 自己做了一个测试网页,想动态添加表格,然后删除,按照网上的教程写完,发现点击"删除参数"按钮没用 源码: function addtr() { var trinfo = & ...
- Charles对移动APP抓包(https)
1.下载安装Charles 2.设置代理 (1)查看默认端口:Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 (2)查看当前电脑的IP:H ...