如何实现在服务器中定时操作?????

superfishmanweb 2005-01-11 09:00:34
如果想在服务器中定期做某种操作,但又不想人手启动的话,应该如何设置或是用什么办法呢.
我想做的操作就如:查入数据库,更新数据.我用的是tomcat+mysql.但我不想用网页的形式来实现,有什么后台的方法能达到着个目的吗?
...全文
151 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
"treeroot(根根)"和"蔼xx_ch(好客小虫)"两种方法分别是如何启动的呢?是写在servlet上的吗?
funcreal 2005-01-11
  • 打赏
  • 举报
回复
如楼上就行了。在工程加载的时候启动你自己写的程序。当工程停止的时候停止你写的程序。
我写过一个在服务器上运行的程序,是多线程的,但是是手动的,和服务器没关系。不过以上的方法一定行得通的
xx_ch 2005-01-11
  • 打赏
  • 举报
回复
import java.net.URL;
import java.io.*;
import java.net.*;

public class TimerListener
implements javax.servlet.ServletContextListener {
private java.util.Timer timer;
long iVoxCount = 0;
long iMsgCount = 0;
private java.io.InputStream is = null;

public TimerListener() {
System.out.println("初始化成功");
timer = new java.util.Timer(true);
}


public void contextDestroyed(javax.servlet.ServletContextEvent event) {
System.out.println("系统关闭");
timer.cancel();
}

public void contextInitialized(javax.servlet.ServletContextEvent event) {
System.out.println("开始检测");
//System.out.println( event.getServletContext().getRealPath( "/" ) );
timer.schedule( new java.util.TimerTask() {
private HttpURLConnection conn;
public void run() {
// System.out.println("111");
try {

URL url = new URL("servletURL");
try {
conn = (HttpURLConnection) url.openConnection();
is = conn.getInputStream();
is.close();
conn.disconnect();
}
catch (IOException ex1) {
}
}
catch (MalformedURLException ex) {
}
}
}
, 1000, 时间间隔);
}
}

不知道这样能满足你的要求不,这是启动tomcat以后可以自动定期运行的一段程序
时间间隔是毫秒
treeroot 2005-01-11
  • 打赏
  • 举报
回复
Timer timer=new Timer();
TimerTask task=new TimerTask(){
public void run(){
//here is what you want to do, println helloworld for example
System.out.println("HelloWorld");
}
};
//period between two execute
long period=5*1000;
timer.schedule(task,0,period);
5秒打印一次helloworld
huang_yb 2005-01-11
  • 打赏
  • 举报
回复
多线程.如果你是windows系统,还可以打包成.exe文件(不用多线程),在计划任务中执行
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
有没有详细的思路
treeroot 2005-01-11
  • 打赏
  • 举报
回复
java.util.Timer
java.util.TimerTask
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
已经ok了,谢谢
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
那这个类应该放到什么地方,就是说xml中读这个类是读什么地方的呢是读servlet还是读bean的呢,不需要填路径吗.
xx_ch 2005-01-11
  • 打赏
  • 举报
回复
这个就是全的呀,你放到编译工具里就可以看出来了,那块对应的是timer.schedule这里的括号
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复

xx_ch(好客小虫) --能把完整的给我吗,上面的程序好象不全--------, 1000, 时间间隔);
xx_ch 2005-01-11
  • 打赏
  • 举报
回复
哦,你没用过这个类呀,在web.xml里加上这2句
<listener>
<listener-class>TimerListener</listener-class>
</listener>

这样就可以启动了
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
ok了,谢谢
treeroot 2005-01-11
  • 打赏
  • 举报
回复
你不可以自己手动启动吗?这样的话就是两个不同的进程
否则不好控制呀
superfishmanweb 2005-01-11
  • 打赏
  • 举报
回复
我的意思是如何实现"启动tomcat以后可以自动定期运行的一段程序",就是说这段代码应该放的地方是自己写一个servlet还是其它什么的来启动他.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧