Spring MVC 控制器设置时间限制
Spring MVC controller set time limit
我正在 Spring MVC 中的所有 Web 请求中启动一个长进程,如果线程需要很长时间,我想终止它。如果 Spring 控制器中的线程太长,是否有设置终止线程的最长时间?这是最好的方法还是有其他更好的方法?我读到 here 没有线程的协作,线程不能被应用程序服务器杀死。
我找到了 Guava TimeLimiter 但不确定如何使用它。
谢谢。
最后,我用时间限制器做到了:
TimeLimiter limiter = new SimpleTimeLimiter();
limiter.callWithTimeout(new Callable<String>() {
@Override
public String call() throws IOException {
return mymethod ();
}
}, timelimit, TimeUnit.SECONDS, false);
如果该方法花费的时间超过时间限制,则抛出必须管理的 UncheckedTimeoutException
异常。
我正在 Spring MVC 中的所有 Web 请求中启动一个长进程,如果线程需要很长时间,我想终止它。如果 Spring 控制器中的线程太长,是否有设置终止线程的最长时间?这是最好的方法还是有其他更好的方法?我读到 here 没有线程的协作,线程不能被应用程序服务器杀死。
我找到了 Guava TimeLimiter 但不确定如何使用它。
谢谢。
最后,我用时间限制器做到了:
TimeLimiter limiter = new SimpleTimeLimiter();
limiter.callWithTimeout(new Callable<String>() {
@Override
public String call() throws IOException {
return mymethod ();
}
}, timelimit, TimeUnit.SECONDS, false);
如果该方法花费的时间超过时间限制,则抛出必须管理的 UncheckedTimeoutException
异常。