gpt4 book ai didi

node.js - 通过长时间运行的后台工作防止 HTTP 请求超时

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

以下情况:

我有一个网络服务器,它会在客户端请求时下载文件并用作文件缓存。

客户端请求一个文件并将文件 url 作为参数传递。网络服务器检查他是否缓存了文件。如果没有,网络服务器下载文件并在下载后提供文件。

对客户端的响应必须是文件。不可能以“正在下载,请稍后再回来查看”来关闭响应,并在几分钟后打开来自客户端的第二个请求。不,我不会切换到套接字,因为客户端不支持它。客户端必须使用 .NET WebClient.DownloadFile。

问题是,在下载文件时,对网络服务器的 HTTP 请求被暂停。文件可以是任意大小,如果不能及时下载并返回给客户端,会导致客户端请求超时取消。

我不想在客户端上设置超时,因为这太麻烦了。

有人知道如何解决这个问题吗?我已阅读有关 HTTP 状态 102(正在处理)的信息,但我不知道如何设置该状态。

我在网络服务器上使用 node.js,但对任何类型的(tcp 级别)解决方案感兴趣。

最佳答案

我解决了将下载流式传输到临时文件并将文件内容提供给发出请求的客户端的问题。

随着下载过程中文件的增长,使用 npm growing-file 打开临时文件并将数据通过管道传输到客户端的响应流中。

关于node.js - 通过长时间运行的后台工作防止 HTTP 请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39615485/

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