0

让我们了解一下这种情况,我必须在从移动应用程序对我的服务器(比如说 A)的 API 调用之一中调用第三方 API 。该第三方 API 需要将近 12-15 秒才能执行。但是,在对我的服务器(比如说 B)的下一次连续 API 调用中,我需要在开始处理之前获得该第三方 API 的响应。

在这里,在对我的服务器(即A)的第一次 API 调用中,在新线程中调用第三方 API 对我来说很重要。这样我就可以有效地使用我的第二个 API 即B的处理时间,因为移动用户必须提供某些输入 b/w 这两个 API 的A & B

我想到的解决方案是,我将在新线程中访问第三方 API,将线程引用保存在一个变量中,并将其传递给我的第一个 API 调用的响应,例如

@th_ref = Thread.new do

// serive for third party api

end

json.thread_ref @th_ref

在下一个 API 调用中,即B,我将在主体中获取此引用,然后将我的主线程与前一个线程连接起来,这样B在我得到第三方 API 响应之前不会开始工作。

但是通过上述解决方案,我在第二个 API 的主体中的String 类中得到了 thread_ref

“#<线程:0x00007fc84e316e38@(pry):157 运行>”

我必须将它改回Thread 类,以便我可以使用类似thread_ref.jointhread_ref.alive?

请建议我如何实现这种转换,我是否使用正确的方法来解决我的问题?

4

0 回答 0