我的应用程序中有一个 servlet 过滤器,我需要从中调用一个 Web 服务,该服务需要一些时间来返回响应,然后将响应存储在会话中以供以后使用。我希望在这个耗时的过程发生时,我的过滤器应该继续进行,并且应该继续调用其他过滤器,这样性能就不会受到影响。
所以这就是我想在 doFilter() 中做的事情。为此目的创建一个不同的线程。
log.debug("start filter");
CustomThread ct=new CustomThread();
ct.start(); //invoke web service in run()
log.debug("continuing with filter");
考虑到将有超过 1000 个用户访问该应用程序这一事实,这种方法能否正常工作。这种情况在某些情况下会失败吗?请建议我是否需要采取不同的路线。