不使用框架,自定义定时任务(web)
来源:互联网 发布:微信开发教程 java 编辑:程序博客网 时间:2024/06/06 00:32
首先需要一个任务类,这个类主要负责执行定时的任务。它是真正的worker。
import javax.servlet.ServletContext;
public class TimerTask extends java.util.TimerTask {
//application 对象,不是一定需要,但是可能实现某些功能时需要,所以最好作为参数传到当前对象中
private ServletContext ctx;
public TimerTask(ServletContext ctx) {
this.ctx = ctx;
}
@Override
public void run() {
//需要执行的任务放在这里执行。
System.out.println("-----------任务执行:"+ctx.getServerInfo());
}
}
-----------------------------------------------华丽的分割线--------------------------------------------------------------------------------
然后需要一个时间调度,这个类定义任务执行的时间,这个类通过ServletContext listener实现。
public class TimerListener implements ServletContextListener {
//时间调度
private Timer timer;
//任务类
private TimerTask task;
//格式化时间
private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//服务器停止时调用此方法
@Override
public void contextDestroyed(ServletContextEvent event) {
//停止时间调度
if(timer != null){
timer.cancel();
}
}
//服务器启动调用此方法
@Override
public void contextInitialized(ServletContextEvent event) {
try {
//true 设置为后台线程
timer=new Timer(true);
//实例化任务类
task=new TimerTask(event.getServletContext());
//开始任务的时间,这里的时间可以做成可配置的,具体实现省略。
Date settime=sdf.parse("2014-01-09 10:01:00");
//距离开始还有多少毫秒,因为timer.schedule 不支持直接给定开始时间,而是一个long值
long starttime=settime.getTime()-new Date().getTime();
//这个任务会在2014-01-09 10:01:00 被执行,但只会执行一次
//如果需要循环执行,则 设置第三个参数,也是一个long值,例如:1000,表示在开始时间执行一次后,1000毫钟执行一次。
timer.schedule(task, starttime);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
---------------------------------------------------华丽的分割线----------------------------------------------------------------------------
最后在web.xml添加监听信息
<listener>
<listener-class>com.zjz.timer.TimerListener</listener-class>
</listener>
0 0
- 不使用框架,自定义定时任务(web)
- SpringMVC框架使用注解执行定时任务
- Python定时任务APScheduler框架的使用
- Spring web项目使用Quartz定时任务
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- quartz入门及通用型自定义定时任务框架
- 在Java web项目springMVC框架中实现定时任务
- 简单定时任务框架
- 定时任务框架搭建
- quartz定时任务框架
- python 定时任务框架
- Quartz定时任务框架
- Quartz定时任务框架
- Java Web定时任务
- Java Web定时任务
- web定时任务实例
- c#web定时任务
- 流媒体开发的有用网址收藏
- 妈妈与婆婆 眼睛湿润了
- 将 string形式的时间转化为 timestamp
- Hadoop科普文——常见的45个问题解答
- C语言文件结构
- 不使用框架,自定义定时任务(web)
- Collection.sort 的用法--很有用哦
- android执行Linux命令
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- error C3867 VC6.0转为高版本问题
- Flex 页面跳转方法几枚
- C++语言的15个晦涩特性
- eclipse导入工程中文乱码问题(转)
- YUV420各种格式备忘