gpt4 book ai didi

java - 处理两个 REST 端点读取相同数据时的延迟问题

转载 作者:行者123 更新时间:2023-12-02 12:23:39 25 4
gpt4 key购买 nike

我有两个休息 API。我使用 Spring Boot 和 MongoDB。

首先,客户端调用 api1,将记录插入到 mongo 集合中。然后几秒钟后,api2 尝试读取插入记录并执行一些处理。

但是有时会出现这样的情况,当 api2 尝试读取记录时,由于 api1 的延迟,它没有插入到集合中。

在这种情况下,api2 无法执行该过程。

我能想到的一个选择是,当api2读取记录时,如果它仍然没有插入到mongo中,则让thead hibernate 几秒钟并唤醒它(可以做几次直到记录存在)

我还有什么其他选择?

更新:这两个 api 是独立的。该流程就像上传视频完成后调用 api1 并插入带有 refid 的媒体,然后该流程完成。然后,在使用 refid 完成视频转码(通常在 30 秒左右)后,应用程序接收从外部视频处理系统到 api2 的回调,然后 api2 对插入的媒体进行一些更新。有一个边缘情况,对于非常小的视频,外部视频系统 react 很快并给出回调,当时我的应用程序仍在将媒体插入到 mongo

最佳答案

我建议您的 api1 一旦完成就调用 api2 并将其插入的 id 传递给它。这样 api2 就永远不必过早运行。另一种方法是使用一个队列,其中 api1 将放置一条消息,而 api2 则使用该消息并对其进行处理(归功于在评论中提到的@warge 用户)

关于java - 处理两个 REST 端点读取相同数据时的延迟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com