RESTful Web服务方法间通信

时间:2018-10-04 00:09:10

标签: rest callback

我有2个Web服务(WSa)和(WSb)...

Web服务(WSa)将调用Web服务(WSb)的方法(Mx)...

Web服务(WSb)将通知用户(U1)回答某个问题(Q1)...

用户(U1)将通过调用另一个方法(My)并传递答案来回复(WSb)...

现在,(WSb)如何回复(WSa)的原始请求?!

换句话说,方法(Mx)在将其回复发送回服务(WSa)之前如何等待用户(U1)调用方法(My)?!

我试图在(WSb)中定义一个可以用作信号量的静态布尔字段(sem)。因此,在通知用户输入后,方法(Mx)将循环直到sem = true。当用户(U1)调用方法(My)并提供其答案时,sem设置为false,以便方法(Mx)可以继续执行并回复服务(WSa)。但是,该应用程序崩溃了。我想这不是处理Web服务的正确方法。

那么,您建议我记住我不能更改服务(WSa)。我只能使用(WSb)及其RESTful方法吗?!

请参阅随附的序列图: enter image description here

1 个答案:

答案 0 :(得分:0)

IMO,处理异步执行比使线程等待代码执行更好(在用户干预的情况下更糟)。

您可以为WSa的每个请求生成唯一的ID,并在完成后从WSb发送异步回调以及ID和响应。