gpt4 book ai didi

java - 如何让servlet容器(Tomcat)中断/销毁servlet请求?

转载 作者:行者123 更新时间:2023-12-02 00:53:28 26 4
gpt4 key购买 nike

我是 Servlet 新手,我使用以下代码读取一些 inputStream,

class MyServlet implements Servlet{
void service(ServletRequest req, ServletResponse res){
InputStream inA, inB, inC;
//...
inA.read(); // May block
inB.read(); // May block
inC.read(); // May block
// ...
}
}

如何让 servlet 容器 (Tomcat) 在经过一段可配置的时间后中断/销毁 MyServlet。在这种情况下它将调用哪个方法?

提前致谢,,,

最佳答案

我不相信您可以使用 Tomcat(或其他 servlet 引擎)来做到这一点。

最简单的方法可能是在单独的线程中生成耗时的进程,调用该进程并在该调用时超时。您可以使用FutureTask轻松做到这一点对象和调用 get()在其上,指定超时。如果任务花费太长时间,您将收到 TimeoutException,并且您可以使用 servlet(很好地)向用户报告此情况。

例如(很简单)

FutureTask f = new FutureTask(new Runnable{...});
try {
Object o = f.get(TIMEOUT, UNITS)
// report success
}
catch (TimeoutException e) {
// report failure
}

关于java - 如何让servlet容器(Tomcat)中断/销毁servlet请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959391/

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