我有一个node.js后端,该操作需要一分钟才能完成,并且这些操作的结果会返回给用户。
此node.js应用程序位于aws负载均衡器的后面,该超时时间为60秒(我无法更改),因此当用户对后端执行api调用时,该操作将花费60秒钟以上,因此负载均衡器连接闲置太久而超时。
我的问题:后端是否有可能每30秒将某种信息/数据包发送回用户,因此连接不被视为空闲状态?
答案 0 :(得分:0)
超时主要用于保留服务器和中间资源。
考虑以下超时-
连接超时-客户端必须等待直到建立连接的时间
套接字超时-没有数据的连接可以空闲多长时间
请求超时-请求完成应花费多长时间
即使您可以通过定期向客户端发送数据来解决第二种超时问题,您也无法克服可能由中间网关或代理施加的第三种超时问题。
因此,与其计划用定期数据来完善连接,不如进行HTTP轮询。简而言之,您的服务器可以接受请求,启动冗长的过程,发出令牌并结束连接。客户端可以使用令牌进行轮询,并在完成后获取处理后的数据。