利用ServletContextListener 实现定时任务
来源:互联网 发布:淘宝手机版首页模板 编辑:程序博客网 时间:2024/06/06 21:40
一个实现ServletContextListener接口的类: StatisticsContextListener.java
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.ed.cnc.city.StatisticsTask;
/** *//**
* 统计ContextListener
* @author westd
*
*/
/** *//**
* @author westd
*
*/
public class StatisticsContextListener implements ServletContextListener
{
private java.util.Timer timer = null;
/** *//**
* 这个方法在Web应用服务做好接受请求的时候被调用。
*
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent event)
{
timer = new java.util.Timer(true);
event.getServletContext().log("定时器已启动");
timer.schedule(new StatisticsTask(event.getServletContext()), 0, 60*60*1000);//每隔1小时
event.getServletContext().log("已经添加任务调度表");
}
/** *//**
* 这个方法在Web应用服务被移除,没有能力再接受请求的时候被调用。
*
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent event)
{
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
一个继承于TimerTask的一个类:StatisticsTask.java
package com.ed.cnc.city;
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
/** *//**
* 统计任务
* @author westd
*
*/
public class StatisticsTask extends TimerTask
{
private static final int STATISTICS_SCHEDULE_HOUR = 0;
private static boolean isRunning = false;
private ServletContext context = null;
public StatisticsTask(ServletContext context)
{
this.context = context;
}
@Override
public void run()
{
Calendar cal = Calendar.getInstance();
//System.out.println(isRunning);
if (!isRunning)
{
if (STATISTICS_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) //查看是否为凌晨
{
isRunning = true;
context.log("开始执行指定任务");
//TODO 添加自定义的详细任务
executeTask();
//指定任务执行结束
isRunning = false;
context.log("指定任务执行结束");
}
}
else
{
context.log("上一次任务执行还未结束");
}
}
/** *//**
* 执行任务
*/
public void executeTask()
{
System.out.println("任务1");
System.out.println("任务2");
}
}
web.xml中添加如下代码:
<listener>
<listener-class>com.ed.cnc.servletListener.StatisticsContextListener</listener-class>
</listener>
- 利用ServletContextListener实现定时任务
- 利用ServletContextListener实现定时任务
- 利用ServletContextListener 实现定时任务
- ServletContextListener定时任务的使用
- ServletContextListener定时任务的使用
- 利用ScheduledExecutorService实现定时任务
- 如何使用ServletContextListener完成定时任务
- 基于ServletContextListener以及TimerTask实现Java/WEB的定时任务处理
- 利用Quartz实现定时执行任务
- 利用Timer TimerTask实现定时循环任务
- spring定时任务(利用Quartz实现)
- 利用Spring的@Schedule实现定时任务
- 利用linux的定时任务实现数据库的定时更新
- 项目启动后开启定时任务方法-->ServletContextListener
- 使用ServletContextListener完成定时任务(固定频率执行)
- 利用windows计划任务实现定时运行ASP文件代码
- 利用windows计划任务实现定时运行ASP文件代码
- 利用定时任务实现嵌入式下网卡状态检测
- JQuery性能优化指南
- Sqlserver 今天生日的客户
- SQL语句中查询并在结果中添加一条虚拟数据
- 数据库错误:在执行批处理时出现错误。错误消息为: 目录名无效
- Java日期循环,Java获取当月的第一天和最后一天
- 利用ServletContextListener 实现定时任务
- Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决 作者:孤风一
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
- Tomcat 启动两次的问题(ServletContextListener的contextInitialized被执行两次的问题)
- 让IE浏览器支持RGBa的背景色
- JDBC-获取Connection对象2
- Java FileFilter 文件过滤
- JSON asp(vbs)源文件
- 用VMware完全克隆的CentOS 6.5网卡只有eth1,将eth1改成eth0