3

在调用第三方服务为用户更新某些实体时,我需要等待 Spring MVC 请求处理程序中的条件。

平均等待时间约为 2 秒。

我正在调用Thread.sleep以允许远程调用完成并在数据库中更新实体:

Thread.currentThread().sleep(2000);         

之后,我从数据库中检索更新的模型并显示视图。

但是,对到达此控制器/请求处理程序进行处理的并行请求会有什么影响?

并行请求也会经历等待吗?

或者它们会被派生到单独的线程中,因此不受当前请求所经历的延迟的影响?

4

1 回答 1

2

正在做的事情有时可能会奏效,但这不是一个可靠的解决方案。

Java Future 接口以及配置的 ExecutorService 允许您开始某些操作并让一个或多个线程等待,直到结果准备好(或可选地,直到经过一定时间)。

你可以在这里找到它的文档:http: //download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html

于 2011-09-26T17:24:00.577 回答