我有以下场景。
问题是我想阻止原始用户的信息请求,直到我通过回调获取信息。 我不知道应该如何用java编写它。 我正在使用 spring boot(尽管我不确定这有多大相关性)。 我还在考虑将其编码为普通的 spring boot mvc 应用程序或反应式 spring boot 应用程序(我想做后者,但我仍在学习反应式 spring boot)。 无论如何,我对这两个框架的解决方案都很感兴趣。
基本问题是如何阻止初始用户信息请求,直到第三方站点将信息发送到回调 URL? 我研究过未来和承诺,要么我不太理解它们,要么它们不是我正在寻找的机器人。
有什么建议吗? 预先感谢。
如果你想在等待第三方回复时阻塞一个线程,这是无用的资源浪费。您需要准备一个包含有关用户请求的所有信息的对象,并为其分配一个唯一的 id,然后使用包含该 id 的回调 url 向第三方发送请求,如
http://myservice.org/callback?id=123
。启动服务器来接受回调。该服务器从 url 中提取 id,从 hashmap 中找到具有该 id 的用户请求对象,然后发送回复。
我为 java 和 kotlin 编写了一个 Promise 库。它更易于使用且轻巧,请在 https://pro4j.com/ 处查看。