阻塞 REST API 响应,直到另一个 API 被调用
Blocking a REST API response until another API is called
我有以下场景:
应用程序中有两个 API 调用:api1
和 api2
。
api1
被多个用户多次调用。我想阻止 api1
调用的所有响应,直到 api2
被调用。 api2
将使用一个参数调用,该参数会建议 "release" 特定 api1
调用的响应。因此,每当 api2
被调用时,一个特定的 api1
调用将响应,该调用直到现在才被阻止(根据 api2
调用中传递的参数,可以有多个 api1
释放)。
我想在 grails 中实现它。我对如何实现这一点一无所知。有什么想法吗?
如果您知道可用于实现此功能的任何其他语言或框架,请分享。
我想到的一个解决方案是在 api1 调用上使用互斥锁并在 api2
中释放它。您可能需要考虑 api1
.
的超时
编辑
好吧,您可以有一个 dictionary/map 互斥锁,其中每个调用都有一个相应的互斥锁。当客户端调用 api1
时,服务器会生成一个互斥量并将其添加到字典中,同时它会尝试锁定互斥量(默认情况下是锁定的)。之后在 api2
你只需要提供你在字典中使用的 id 来解锁互斥量。
我有以下场景:
应用程序中有两个 API 调用:api1
和 api2
。
api1
被多个用户多次调用。我想阻止 api1
调用的所有响应,直到 api2
被调用。 api2
将使用一个参数调用,该参数会建议 "release" 特定 api1
调用的响应。因此,每当 api2
被调用时,一个特定的 api1
调用将响应,该调用直到现在才被阻止(根据 api2
调用中传递的参数,可以有多个 api1
释放)。
我想在 grails 中实现它。我对如何实现这一点一无所知。有什么想法吗?
如果您知道可用于实现此功能的任何其他语言或框架,请分享。
我想到的一个解决方案是在 api1 调用上使用互斥锁并在 api2
中释放它。您可能需要考虑 api1
.
编辑
好吧,您可以有一个 dictionary/map 互斥锁,其中每个调用都有一个相应的互斥锁。当客户端调用 api1
时,服务器会生成一个互斥量并将其添加到字典中,同时它会尝试锁定互斥量(默认情况下是锁定的)。之后在 api2
你只需要提供你在字典中使用的 id 来解锁互斥量。