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