社区
Web 开发
帖子详情
如何配置 “定时自动运行servlet”
马行空牛耕田
2004-10-25 04:41:22
系统环境:
OS : unix / windows
Server : webspere 5.0
tech :struts , hibernate ,ejb
想让一个servlet定时自动运行,做一些后台处理,可否配置?如何配置?
...全文
379
15
打赏
收藏
如何配置 “定时自动运行servlet”
系统环境: OS : unix / windows Server : webspere 5.0 tech :struts , hibernate ,ejb 想让一个servlet定时自动运行,做一些后台处理,可否配置?如何配置?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
马行空牛耕田
2004-10-27
打赏
举报
回复
准备结贴了,哪位还有高见,在下洗耳恭听,否则今天下午5点结贴!
马行空牛耕田
2004-10-26
打赏
举报
回复
再up一下 :)
马行空牛耕田
2004-10-26
打赏
举报
回复
thanks to ChDw(米)
我明白了,其实API文档里都有,但我没有认真去看,想不到java已经把这个问题解决的很好了,呵呵!
ChDw
2004-10-26
打赏
举报
回复
schedule 是表示保证上一次任务结束和下一次的启动时间间隔固定
scheduleAtFixRate才是保证上一次任务启动和下一次的启动时间间隔固定,如果超过了会马上执行的
马行空牛耕田
2004-10-26
打赏
举报
回复
thanks for all!
继续讨论: timer的线程安全问题
如果我的task执行时间超过的delay的时间,会出现什么情况? 会不会前一个task还没有结束,后一个task又接着继续,我不希望这样,可否使用同步来解决?
马行空牛耕田
2004-10-26
打赏
举报
回复
OK,我成功了!
1、我认为是我的<load-on-startup> 和前面的一个servlet配置的一样,都是1,重复了,导致该servlet没有自动加载;
2、timer.schedule(yourTask, 0, 5000); 正确,而timer.schedule(yourTask,5000); 不正确。前者是重复一个时间断后执行,而后者只是定位到5秒后执行,不重复!
zlhlj2000
2004-10-26
打赏
举报
回复
<servlet>
<servlet-name>Timer</servlet-name>
<servlet-class>yourpckage.timerServlet<servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
public void init() throws ServletException {
super.init();
timerTask yourTask= new timerTask();
Timer timer = new Timer();
timer.schedule(yourTask, 0, 5000);
}
public static class timerTask extends TimerTask {// your task
}
Tasia
2004-10-26
打赏
举报
回复
服务器启动和启动后一直运行
写一个servlet,该servlet什么访问都不接受,并且是服务器启动加载的。
在servlet的init方法中启动线程,该线程负责定期执行。
服务器提前加载的配置为:
<servlet>
<servlet-name>deleteMessage</servlet-name>
<servlet-class>servlet.DeleteMessagerFileThread </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
其中load-on-startup配置的数字为启动顺序,其它的跟普通servlet相同
package system;
public class DeleteMessagerFileThread extends Thread {
public DeleteMessagerFileThread() {
}
public void run() {
try {
do {
//do something
System.out.println("开始删除过期短消息及期附件....");
UserMessage.autoDeleteMessagerAndAccessary();
//sleep(60 * 1000);这儿写的是2小时
sleep(2 * 60 * 60 * 1000);
} while (true);
} catch (Exception e) {
}
}
}
dlxu
2004-10-26
打赏
举报
回复
用Thread.sleep(10000),然后重新执行一次Servlet就是
sailingaway
2004-10-25
打赏
举报
回复
ChDw(米)
能不能说详细些,最好有个样例,我是低手这样看不太直观,不要嫌弃我,帮忙解释详细些
马行空牛耕田
2004-10-25
打赏
举报
回复
up一下!
ChDw
2004-10-25
打赏
举报
回复
你在web.xml中对该servlet加上load-on-startup
然后在init方法中使用java.util.Timer来实现定时任务
马行空牛耕田
2004-10-25
打赏
举报
回复
呵呵,不用关注了,在google上一查一大把的解决方案,唉,浪费88分。
不过大家可以把自己知道的方案发上来啊,分照给,说不定还能入选精华贴呢,^_^
边城狂人
2004-10-25
打赏
举报
回复
GZ
JavaWeb开发技术-实现网页
定时
刷新并跳转.pptx
JavaWeb开发技术-实现网页
定时
刷新并跳转.pptx
tomcat启动时,在后台
自动
执行一线程
功能: 在tomcat启动时,就
自动
执行一
servlet
,此
servlet
隔段时间处理某一操作。
JavaWeb后台
自动
向前台发送消息
JavaWeb项目后台向前推送消息,主要是是利用第三方包Comet4J,附件中是MyEclipse开发的源码,可直接
运行
。
Java最著名的开源项目
Java最著名的开源项目,开源项目介绍,简单的介绍,开拓视野。
java
定时
执行
servlet
_
Servlet
中执行
定时
任务
import java.io.IOException;import java.util.Timer;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.persistence.EntityManager;import javax.persistence.Persistence;imp...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章