我有以下情况:
应用程序中有两个API调用:api1
和api2
。
api1
。我想阻止api1
调用的所有响应,直到调用api2
为止。将使用一个参数调用api2
,该参数建议“释放”特定api1
调用的响应。因此,每当调用api2
时,特定的api1
调用都会响应,直到现在才会被阻止(根据api1
调用中传递的参数,可能有多个api2
版本。
我想在grails中实现这一点。我有点空白如何实现这一点。有什么想法吗?
如果您知道可用于实现此目的的任何其他语言或框架,请分享。
答案 0 :(得分:1)
我想到的解决方案是在api1调用上使用互斥锁并在api2
中释放它。您可能必须考虑api1
的超时。
修改强>
好吧,你可以拥有互斥锁的字典/地图,其中每个调用都有一个相应的互斥锁。当客户端调用api1
时,服务器会生成一个互斥锁并将其添加到字典中,同时它会尝试锁定互斥锁(默认情况下会锁定)。在api2
上之后,您只需要提供您在字典中使用的ID来解锁互斥锁。