在调用第三方服务为用户更新某些实体时,我需要等待 Spring MVC 请求处理程序中的条件。
平均等待时间约为 2 秒。
我正在调用 Thread.sleep
以允许完成远程调用并更新数据库中的实体:
Thread.currentThread().sleep(2000);
在此之后,我从数据库中检索更新的模型并显示 View 。
但是,对于到达此 Controller /请求处理程序进行处理的并行请求会产生什么影响?
并行请求也会经历等待吗?
或者它们会被派生到单独的线程中,因此不受当前请求所经历的延迟的影响?
最佳答案
正在做的事情有时可能会奏效,但这不是可靠的解决方案。
Java Future 接口(interface)以及配置的 ExecutorService 允许您开始某些操作并让一个或多个线程等待结果准备就绪(或可选地等待一定时间)。
您可以在此处找到它的文档: http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html
关于java - 在 Spring MVC 请求处理程序中调用 Thread.currentThread().sleep(2000) 的第二个请求有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558626/