求助-struts2后台运行的问题 小弟目前在做一个监测系统,需要从解调仪不断地读取数据存入数据库,开发的时候是一个单独的main程序,现在想部署成,tomcat启动时,就运行,tomcat关闭时,这个函数也就随之关闭。我理解的struts2都是action出发的,这样一个需要一直运行的函数不知该放在哪里,怎么部署...求赐教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写个监听器,一段时间执行一次就行了,struts2不可能一直在执行的 或者把他写到你的baseAction中,不管运行哪个方法,你都运行一下这个方法, 写listener配置在web.xml<listener> <listener-class>com.shadow.system.listener.InitTimer</listener-class> </listener>然后写执行任务package com.shadow.system.listener;import java.io.IOException;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.shadow.mvc.task.OrderTask;/** * 定时器作业 * * @author shadow * @email [email protected] * @create 2012.04.28 */@SuppressWarnings("serial")public class InitTimer extends HttpServlet implements ServletContextListener { protected Logger logger = Logger.getLogger(getClass()); public InitTimer() { // do something } private Timer timer = null; // 时间器 private final long INTERVAL_TIME = 600000; // 执行间隔(毫秒) protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); event.getServletContext().log("定时器销毁"); } public void contextInitialized(ServletContextEvent event) { timer = new Timer(true); event.getServletContext().log("定时器启动"); timer.schedule(new OrderTask(event.getServletContext()), 0, INTERVAL_TIME); event.getServletContext().log("添加到任务调度表"); }} 去了解下Quartz,用个定时器,可以配置间隔时间 很受用,如果我在initialized调用一个死循环的函数会不会就进行不下去了?监听器init函数xie Spring Data 的问题 [求助]cs架构在服务器端要做什么工作?? 关于hibernate的getSession()的问题 struts2问题求解答 能不能用myeclipse开发flex? session,cookie,appliantion的区别 struts如何传值问题 一个java.util.Timer程序如何吊到后台一直运行。 jbuilder9中文乱码 如何用花生壳自己配jsp的web服务器?高手来来看看? Struts2报错 was 部署应用访问报错500
写listener配置在web.xml<listener>
<listener-class>com.shadow.system.listener.InitTimer</listener-class>
</listener>然后写执行任务package com.shadow.system.listener;import java.io.IOException;
import java.util.Timer;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.shadow.mvc.task.OrderTask;
/**
* 定时器作业
*
* @author shadow
* @email [email protected]
* @create 2012.04.28
*/
@SuppressWarnings("serial")
public class InitTimer extends HttpServlet implements ServletContextListener { protected Logger logger = Logger.getLogger(getClass()); public InitTimer() {
// do something
} private Timer timer = null; // 时间器 private final long INTERVAL_TIME = 600000; // 执行间隔(毫秒) protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
} protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
} public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("定时器销毁");
} public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
event.getServletContext().log("定时器启动");
timer.schedule(new OrderTask(event.getServletContext()), 0,
INTERVAL_TIME);
event.getServletContext().log("添加到任务调度表");
}}