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 异常。