gpt4 book ai didi

java - 如何保留或 hibernate http 请求,直到服务器端完成某些处理?

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

我有一个网络应用程序。 UI 客户端向服务器触发 http 请求。服务器在发送响应之前必须将响应保留几秒钟。这个保留时间 - 是为了联系其他一些第三方服务。我们向第三方服务发送一个请求,并每 1 秒轮询几秒钟,以查看某些特定状态。循环结束后发送 UI 客户端的响应。所以

var state = send request to third party
while(state = "poll" ) {
do I need to sleep the current thread like sleep(currentThread, 1sec) ?
call third party again to know the state.
}

开发人员通常如何做到这一点?如果我们阻塞当前的http线程,对整个服务器有没有影响。会不会对其他请求造成问题。

  1. www.test.com
  2. 输入用户名和密码 - POST
  3. 服务器在本地数据库中进行验证,向第三方应用程序发送请求以获取与其用户名相关的一些报价。
    1. 创建报价请求 - 收到状态为“BEING PREPARED”的回复
    2. 获取报价 - “正在准备”
    3. 等待/ sleep 1 秒
    4. 获取报价 - “正在准备”
    5. 等待/ sleep 1 秒
    6. 获取报价 - “正在准备”
    7. 等待/ sleep 1 秒
    8. 获取报价 - “完成”
  4. 以 JSON 格式发送响应。

同样的事情可以用不同的方式完成。

  1. www.test.com
  2. 输入用户名和密码 - POST
  3. 服务器在本地数据库中进行验证,向第三方应用程序发送请求以获取与其用户名相关的一些报价。
    1. 创建报价请求 - 收到状态为“BEING PREPARED”的回复
    2. 将 request_id 存储在数据库中。
  4. 以 JSON 格式发送响应
  5. 使用 request_id 轮询服务器
  6. “正在准备中”
  7. 设置超时(1秒)
  8. 使用 request_id 轮询服务器
  9. “正在准备中”
  10. 设置超时(1秒)
  11. 使用 request_id 轮询服务器
  12. “正在准备中”
  13. 设置超时(1秒)
  14. 使用 request_id 轮询服务器
  15. “完成”

这两种情况之间有不同。

第一,我不会每秒都用 http 调用淹没我的网络服务器。相反,我持有第一个 http 请求并等待报价服务的响应,然后处理响应。我的问题是如何保持或使该请求线程以 1 秒的频率 hibernate 。

第二个是连续轮询,它会淹没网络服务器。

最佳答案

我认为你的方法很有趣,但远非高效。开发 Web 应用程序时,有更优雅的方法来报告进程状态。例如,看一下 SignalR 或 SocketIO。这样您就不必保持与服务器的开放连接,但工作状态会推送到客户端。

关于java - 如何保留或 hibernate http 请求,直到服务器端完成某些处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54348290/

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