在我的 Spring 应用程序中,我使用 RESTTemplate 从外部 API 获取一些信息。此 API 要求当您发出请求时,您必须等待它的响应,直到您发出另一个请求。这就是为什么我想知道如何做到这一点。当然不能使用计时器或类似的东西,因为这个 API 的响应时间每次都不同。
不幸的是,这个应用程序需要 RESTTemplate,我无法更改它。
在我的 Spring 应用程序中,我使用 RESTTemplate 从外部 API 获取一些信息。此 API 要求当您发出请求时,您必须等待它的响应,直到您发出另一个请求。这就是为什么我想知道如何做到这一点。当然不能使用计时器或类似的东西,因为这个 API 的响应时间每次都不同。
不幸的是,这个应用程序需要 RESTTemplate,我无法更改它。
您可以在单例 bean 中使用标志来实现这一点。在调用服务之前,请检查它是否为false
. 如果false
制作标志true
并致电服务。在退出之前制作标志false
。
因此,当flag == true
服务正在进行时,您可以提出新请求。
通常,您应该在发出请求时等待响应,但您可以打开一个正在侦听传入数据的服务器套接字,当您收到响应时,检查它是什么类型的响应,然后接受或拒绝它。因此,您使用客户端套接字发出请求并使用服务器套接字接收响应。
http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
http://docs.oracle.com/javase/6/docs/api/java/net/ServerSocket.html