今天我有一些理论问题(我找不到编写示例代码的方法)。
我的系统架构如下所示:Client <--> Web Service1 <--> query <--> Web Service2 <--> Server
。
我无法改变它,因为我的公司需要将它分开。
问题在于client
向WebService1
发送请求时的同步,WS1
将对象置于查询中,WS2
一直在查看查询并检查是否存在是一种新的东西,如果是它向Server
发送请求来处理请求并给出一个必须回到Client
的正确响应。
Server
对所有请求没有相同的处理时间。我必须得到客户的请求并在一个会话中发送请求。 Thread.sleep
或任何停止执行代码的方法都是不可接受的。
任何人都可以给我一个暗示我应该使用什么?
答案 0 :(得分:0)
好的,让我们忘记队列和服务器之间的通信。
Thread.sleep
是一个解决方案。客户应该等多少钱?这取决于:
所以,你可以使用一个循环:
但是,你不能让客户等待太多,你可以这样做:
我认为你应该重新考虑停止代码执行,因为在你从队列中回答之前没有代码可以执行。无论如何,请参阅此question来解决睡眠替代方案。