gpt4 book ai didi

multithreading - 同步 HTTP 请求的最大合理超时

转载 作者:可可西里 更新时间:2023-11-01 16:32:56 24 4
gpt4 key购买 nike

这适用于通过 HTTP 相互通信的非面向用户的后端应用程序。我想知道是否有同步 HTTP 请求的最大超时指南。例如,假设一个请求最多可能需要 10 分钟才能完成。我可以简单地在客户端创建一个工作线程,然后在工作线程中同步调用请求吗?或者我应该异步实现请求,返回 HTTP 202 Accepted 并在服务器端分拆一个工作线程来完成请求并找出一种方法来发回结果,可以通过消息传递框架来推测?我担心的问题之一是让套接字长时间打开是否安全?

最佳答案

套接字连接可以保持打开状态(没有事件)多长时间取决于网络基础设施的(质量)。

等待服务器响应的客户端 HTTP 请求会导致打开套接字连接,一段时间内没有任何数据通过该连接。代理服务器可能决定在 5 分钟后关闭此类非事件连接。同样,防火墙可以决定关闭打开时间超过 30 分钟的连接,无论是否处于事件状态。

但是因为你在后端,所以这些情况是可以测试的(只要让处理请求的服务器线程休眠一段时间再给出答案即可)。一旦验证套接字连接没有被不同的网络组件关闭,就可以安全地依赖套接字连接保持打开状态。请记住,网络电缆可能会被拔掉并且服务器可能会崩溃 - 您始终需要一种策略来处理中断。

至于同步和异步:都是可行的,各有优缺点。但是,适合您的方法不仅仅取决于套接字连接的可靠性。

关于multithreading - 同步 HTTP 请求的最大合理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712208/

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