- 浏览: 136373 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
puyancheng1988:
哥们儿,我用的jfreechart在linux服务器上生成的图 ...
JFreeChart图表 -
soujava:
...
Linux下Oracle自动备份脚本 -
skylikeblue:
...
基于JAVA实现的手机收发短消息系统
在工程的WEB-INF\web.xml配置文件中加入如下三行,所计划的任务就会在Web容器(或服务器)启动时自动开始执行了:
<listener>
<listener-class>com.xxh.autoTask.ProjectServletContextListner</listener-class>
</listener>
ProjectServletContextListner.java
package com.xxh.autoTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ProjectServletContextListner implements ServletContextListener {
//定时器
private static java.util.Timer timer = null;
//此方法仅在关闭Web容器(或服务器)时被调用一次
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
timer.cancel();
event.getServletContext().log("定时器已销毁,任务执行结束");
}
//此方法仅在起动Web容器(或服务器)时被调用一次
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
timer = new java.util.Timer(true);
javax.servlet.ServletContext ctx = event.getServletContext();
ctx.log("定时器已启动,任务开始执行");
/*
//如果是用web.xml文件配置参数,则用下面的方式读取参数设置值
long period = Long.valueOf((String)ctx.getInitParameter("period")).longValue();
*/
timer.schedule(new NewTask(), // 所需要执行的任务
0, // 延迟时间(0 --- 表示起动Web容器(或服务器)就立即执行此任务)
30*1000 // 任务的执行间隔时间[单位:毫秒] (此处的间隔时间是30秒)
);
}
}
CustomTask.java
package com.xxh.autoTask;
public interface CustomTask {
/**
* 用于实现自定义的任务
*/
public void execute();
}
CustomTask.java
package com.xxh.autoTask;
public class MyTask implements CustomTask {
public void execute() {
// TODO Auto-generated method stub
System.out.println("在此方法中实现任务的主体");
}
}
NewTask.java
package com.xxh.autoTask;
import java.util.TimerTask;
public class NewTask extends TimerTask {
private static boolean isRunning = false; //运行标志(表示是否正在运行计划的任务)
private static int t = 3;
private CustomTask ct = TaskFactory.getTask();
@Override
public void run() {
// TODO Auto-generated method stub
if(!isRunning){ //当未执行此任务时则开始执行
if(ct != null){
isRunning = true; //将任务执行标志设置为正在执行
ct.execute(); //执行任务
isRunning = false; //将任务执行标志设置为执行完毕
}else{
if(t == 0) return;
t--;
System.out.println();
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
}
}else{
System.out.println("The task is running.");
}
}
}
TaskFactory.java
package com.xxh.autoTask;
public class TaskFactory {
/**
* 功能:返回实现了CustomTask接口的类的实例对象
*
*
* 例: 如果实现了CustomTask接口的类名是MyTask,
* return new MyTask();
* 如上这样就可以了.
*/
public static CustomTask getTask(){
return new MyTask();
}
}
<listener>
<listener-class>com.xxh.autoTask.ProjectServletContextListner</listener-class>
</listener>
ProjectServletContextListner.java
package com.xxh.autoTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ProjectServletContextListner implements ServletContextListener {
//定时器
private static java.util.Timer timer = null;
//此方法仅在关闭Web容器(或服务器)时被调用一次
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
timer.cancel();
event.getServletContext().log("定时器已销毁,任务执行结束");
}
//此方法仅在起动Web容器(或服务器)时被调用一次
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
timer = new java.util.Timer(true);
javax.servlet.ServletContext ctx = event.getServletContext();
ctx.log("定时器已启动,任务开始执行");
/*
//如果是用web.xml文件配置参数,则用下面的方式读取参数设置值
long period = Long.valueOf((String)ctx.getInitParameter("period")).longValue();
*/
timer.schedule(new NewTask(), // 所需要执行的任务
0, // 延迟时间(0 --- 表示起动Web容器(或服务器)就立即执行此任务)
30*1000 // 任务的执行间隔时间[单位:毫秒] (此处的间隔时间是30秒)
);
}
}
CustomTask.java
package com.xxh.autoTask;
public interface CustomTask {
/**
* 用于实现自定义的任务
*/
public void execute();
}
CustomTask.java
package com.xxh.autoTask;
public class MyTask implements CustomTask {
public void execute() {
// TODO Auto-generated method stub
System.out.println("在此方法中实现任务的主体");
}
}
NewTask.java
package com.xxh.autoTask;
import java.util.TimerTask;
public class NewTask extends TimerTask {
private static boolean isRunning = false; //运行标志(表示是否正在运行计划的任务)
private static int t = 3;
private CustomTask ct = TaskFactory.getTask();
@Override
public void run() {
// TODO Auto-generated method stub
if(!isRunning){ //当未执行此任务时则开始执行
if(ct != null){
isRunning = true; //将任务执行标志设置为正在执行
ct.execute(); //执行任务
isRunning = false; //将任务执行标志设置为执行完毕
}else{
if(t == 0) return;
t--;
System.out.println();
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
}
}else{
System.out.println("The task is running.");
}
}
}
TaskFactory.java
package com.xxh.autoTask;
public class TaskFactory {
/**
* 功能:返回实现了CustomTask接口的类的实例对象
*
*
* 例: 如果实现了CustomTask接口的类名是MyTask,
* return new MyTask();
* 如上这样就可以了.
*/
public static CustomTask getTask(){
return new MyTask();
}
}
发表评论
-
Cannot access NLS data files问题的解决办法
2008-10-24 15:14 1367我用的myeclipse 6.5版本,oracle是10g版 ... -
BeanUtil常用方法
2008-10-31 14:25 852Apache Common BeanUtil是一个常用的在对 ... -
安装Visual Editor
2008-11-03 17:05 1216在Eclipse 3.3.2中安装Visual Editor ... -
BeanUtils.copyProperties出现了问题的原因
2008-11-11 15:16 1087使用BeanUtils.copyProperties( des ... -
Servlet/Jsp性能优化
2008-03-05 16:21 694你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访 ... -
系统构建高性能J2EE应用的五种核心策略
2008-03-05 16:26 593于J2EE,我们知道当开发 ... -
JFreeChart图表
2008-03-05 16:30 1568在我们编程时如果要把结果显示成图表形式,就离不开JFreeCh ... -
使用JFreeChart 在网站中使用走势图
2008-03-05 16:35 968生活中我们经常用到各种图表,走势图就是其中的一种,例如:股票走 ... -
JFreeChart综合应用
2008-03-05 16:40 706JFreeChart是一个开源的JAVA项目,它主要用来开发各 ... -
要成为Java高手需要注意的25个学习目标
2008-04-05 14:16 5261、你需要精通面向对象 ... -
使用Axis开发Web Service实例
2008-06-03 15:40 816一、Axis安装 1、环境 J2SE SDK 1.3 or 1 ... -
Java实现HTTP的断点续传
2008-06-05 10:39 605(一)断点续传的原理 其实断点续传的原理很简单,就是在Ht ... -
java串口编程
2008-06-05 11:00 1173一年半前在jbuilder2006下写过串口通信程序,最近做一 ... -
Java串行端口技术协议
2008-06-05 11:06 754串行通讯协议有很 ... -
基于JAVA实现的手机收发短消息系统
2008-06-05 11:14 14490 引 言 目前基于GSM网络的短消息应用越来越多。由于采用短 ... -
多国语表单提交乱码问题
2008-06-30 10:43 7671、所有文件都以-utf-8编码格式保存 2、所有文件都设置 ... -
网站跨站点单点登录
2008-07-03 13:20 1060昨天和几位朋友探讨到 ... -
FreeMarker概述
2008-07-03 14:43 685快速入门 (1)模板 + ... -
使用FreeMarker生成Html静态文件(实例)
2008-07-04 10:31 735以下是我在生成新闻的静态文件时用到的代码.仅供参考.请根据实际 ... -
FreeMarker学习手册
2008-07-04 17:11 796(1)模板 + 数据模型 = 输 ...
相关推荐
java web定时任务 实例 博文链接:https://af8991.iteye.com/blog/1165178
主要介绍了Java Web实现添加定时任务的方法,涉及java web定时任务控制类定义、调用及监听器定义、添加等相关操作技巧,需要的朋友可以参考下
在Java Web程序中加入定时任务,这里介绍两种方式使用监听器注入,使用Spring注解@Scheduled注入,需要的朋友可以参考下
只需要在web.xml文件中添加监听器listener,然后加入附件中的文件,并将lstener指向所添加的文件TimerTaskListener,定时任务的研发便可轻松搞定!
该demo只是实现定时监听、周期性执行任务的功能,而邮件发送、文件删除等自定义功能需要自行添加上去,只需在run方法下修改邮件发送、文件删除等功能即可;
附件中实现了对quartz的动态添加、修改和删除定时任务,方便通过页面动态控制执行定时任务。
JAVA项目服务器启动时自启动指定的Servlet,并定时执行任务。 配置关键在web.xml和servlet文件中的init操作
本篇文章主要介绍了四步轻松搞定java web每天定时执行任务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java quartz计划任务中间件使用教程,每天定时备份数据库的插件jspweb java网站工程.rar
Spring Boot 通过web开启和关闭定时任务
我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...
Timer schedule JAVA J2EE WEB 指定每一天某时某分执行某项任务的功能。 读取目录下配置文件的内容。 开发环境jdk1.5.0_22、MyEclipse6.5中文版。...定时任务管理器,定时执行,定时任务,run 绝对能用
下面小编就为大家分享一篇Java实现Web 应用中的定时任务的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
web-flash是一个基于Spring Boot和Vue.js的web系统,包含了基于...基于Spring Boot+Vue.js的后台管理系统,权限管理,字典,配置,定时任务,短信,邮件,根据excel模板导出,cms内容管理,手机端h5,IDEA 代码生成插件
本篇文章主要介绍了Java Web项目中编写定时任务的实现,具有一定的参考价值,有兴趣的可以了解一下。
定时任务管理带WEB管理界面-quartz-web
quartz定时任务,在web项目中的使用方法;有例子和包直接拿到工程里陪陪就能用
为您提供PowerJob java任务调度框架下载,PowerJob是全新一代分布式调度与计算框架,支持CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,使用简单,功能强大,文档齐全,能让您轻松...
Yii2+Swoole开发的定时任务管理系统,带预警邮件通知(Crontab).zip 功能列表 用户管理 权限管理 邮件预警 立即执行任务 (python+shell) 定时任务(python+shell),支持秒级定时任务,服务稳定完美运行 定时...
cppweb同时也是一个跨平台的微服务开发框架,通过两个核心组件webrouter与webserver提供微服务系统中的接口路由网关、服务注册中心、业务服务容器、定时任务调度中心以及接口文档平台等功能,cgi应用只是其中业务...