在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的更多相关文章

  1. atititt.java定时任务框架选型Spring Quartz 注解总结

    atititt.java定时任务框架选型Spring Quartz 总结 1. .Spring Quartz  (ati recomm) 1 2. Spring Quartz具体配置 2 2.1. 增 ...

  2. java定时任务

    java定时任务实现方法: public class TimingTask { private static int count = 0; private static SpiderService s ...

  3. 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旨在解决 ...

  4. [转][JAVA]定时任务之-Quartz使用篇

    [BAT][JAVA]定时任务之-Quartz使用篇 定时任务之-Quartz使用篇 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与 ...

  5. 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应

    http://blog.csdn.net/panjunbiao/article/details/8615880   用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应

  6. Java定时任务器

    java定时任务,每天定时执行任务.以下是这个例子的全部代码. public class TimerManager { //时间间隔 private static final long PERIOD_ ...

  7. 如何使用Java、Servlet创建二维码

    归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指 ...

  8. java之servlet入门操作教程一续

    本节主要是在java之servlet入门操作教程一  的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...

  9. Quartz实现JAVA定时任务的动态配置

    什么是动态配置定时任务? 首先说下这次主题,动态配置.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 定时任务实现方式千人千种,不过基础的无外乎 1.JDK 的Timer类 2. ...

随机推荐

  1. 清理c盘的文件

    C:/Users/用户名/AppData里面默认有三个文件夹,分别是Local,LocalLow,Roaming,简单地来说,都是用来存放软件的配置文件和临时文件的,里面有很多以软件公司或者软件名称命 ...

  2. NC文件的处理【netcdf】

    NC是气象领域数据的标准格式之一. 能够更好的存储格点数据. 下面为测试NC文件的读写. git:https://git.oschina.net/ipnunu/nctest pom.xml <p ...

  3. (转载) 上传文件进度事件,进度事件(Progress Events)

    转载URL:https://www.w3cmm.com/ajax/progress-events.html MDN参考:https://developer.mozilla.org/zh-CN/docs ...

  4. Codeforces - 773A - Success Rate - 二分 - 简单数论

    https://codeforces.com/problemset/problem/773/A 一开始二分枚举d,使得(x+d)/(y+d)>=p/q&&x/(y+d)<= ...

  5. 百度之星资格赛 1003 度度熊与邪恶大魔王(二维dp)

    分析 挺好的一道题 dp[i][j]表示打败i颗血j防御力的怪兽需要的最少宝石数 然后就好了,复杂度\(O(n+m*1000*10)\) #include <bits/stdc++.h> ...

  6. expect实现配置机器信任关系

    利用expect的交互功能,自动配置信任机器之间的信任关系. 代码里会判断机器是否生成了秘钥,如果没有生成过,则自动帮助你执行 ssh-keygen #!/bin/sh expect_ssh_copy ...

  7. scrapy 连接错误

    twisted.python.failure.failure twisted.internet.error.connectionlost: connection to the other side w ...

  8. Apache-kylin-2.0.0-bin-hbase1x.tar.gz的下载与安装(图文详解)

    首先,对于Apache Kylin的安装,我有话要说. 由于Apache Kylin本身只是一个Server,所以安装部署还是比较简单的.但是它的前提要求是Hadoop.Hive.HBase必须已经安 ...

  9. AtCoder Grand Contest 010 F - Tree Game

    题目传送门:https://agc010.contest.atcoder.jp/tasks/agc010_f 题目大意: 给定一棵树,每个节点上有\(a_i\)个石子,某个节点上有一个棋子,两人轮流操 ...

  10. Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) A

    Description Bear Limak wants to become the largest of bears, or at least to become larger than his b ...