gpt4 book ai didi

java - Servlet 程序即服务

转载 作者:行者123 更新时间:2023-12-01 19:26:22 24 4
gpt4 key购买 nike

我有一个Java servlet 程序,它在tomcat 启动时启动。我已经提到该程序是在启动时加载的。我没有使用任何 HTTP 请求或响应。

我需要的是我需要将程序作为服务运行或者需要在一定的时间间隔自动刷新。怎么做?有人可以帮助我吗!

谢谢,戈帕尔。

最佳答案

quartz 是一个好主意,但根据您的需要可能有点过头了。我认为你真正的问题是试图将你的服务塞进 servlet 中,而你实际上并没有监听传入的 HttpServletRequests。相反,请考虑使用 ServletContextListener 来启动您的服务,并使用计时器,正如莫里斯建议的那样:

web.xml:

<listener>
<listener-class>com.myCompany.MyListener</listener-class>
</listener>

然后你的类看起来像这样:

public class MyListener implements ServletContextListener {

/** the interval to wait per service call - 1 minute */
private static final int INTERVAL = 60 * 60 * 1000;

/** the interval to wait before starting up the service - 10 seconds */
private static final int STARTUP_WAIT = 10 * 1000;

private MyService service = new MyService();
private Timer myTimer;

public void contextDestroyed(ServletContextEvent sce) {
service.shutdown();
if (myTimer != null)
myTimer.cancel();
}

public void contextInitialized(ServletContextEvent sce) {
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
public void run() {
myService.provideSomething();
}
},STARTUP_WAIT, INTERVAL
);
}
}

关于java - Servlet 程序即服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com