3

在我的 Spring 应用程序中,我使用 RESTTemplate 从外部 API 获取一些信息。此 API 要求当您发出请求时,您必须等待它的响应,直到您发出另一个请求。这就是为什么我想知道如何做到这一点。当然不能使用计时器或类似的东西,因为这个 API 的响应时间每次都不同。

不幸的是,这个应用程序需要 RESTTemplate,我无法更改它。

4

2 回答 2

2

您可以在单例 bean 中使用标志来实现这一点。在调用服务之前,请检查它是否为false. 如果false制作标志true并致电服务。在退出之前制作标志false

因此,当flag == true服务正在进行时,您可以提出新请求。

于 2012-09-15T18:02:13.327 回答
1

通常,您应该在发出请求时等待响应,但您可以打开一个正在侦听传入数据的服务器套接字,当您收到响应时,检查它是什么类型的响应,然后接受或拒绝它。因此,您使用客户端套接字发出请求并使用服务器套接字接收响应。

http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html

http://docs.oracle.com/javase/6/docs/api/java/net/ServerSocket.html

于 2012-09-15T11:03:53.400 回答