保留请求上下文是否有时间限制?



我有一个使用 socket.io 接收数据流的NodeJS应用程序。 流媒体时间最长可达 30 分钟。 流式处理完成后,套接字将断开连接,并调用一系列函数。这些功能也可能非常耗时。

由于它作为一个整体系统运行,因此所有这些事件都链接在一个上下文中。所有函数都是异步的,因此它不会阻塞事件循环。

将函数分解为单独的微服务将消除长时间保留上下文的需要。 但是,对于 API 服务器应维护请求上下文的时间,是否有行业标准的时间限制?或者,如果我们有足够的资源,时间真的不是问题吗?

请求上下文只是一个具有一堆属性的 Javascript 对象。 长时间挂起对它的引用只是意味着该对象的垃圾回收将延迟。 唯一真正的后果是更高的峰值内存使用量。

但是,对于 API 服务器应维护请求上下文的时间,是否有行业标准的时间限制?

在这方面,我知道没有行业标准,我认为这不是真正的标准做事方式,而是关于您自己的服务器如何工作和配置。 如果您需要流式传输 30 分钟(从而使请求保持打开状态(,则请求上下文可能会持续这么长时间。

或者,如果我们有足够的资源,时间真的不是问题吗?

这实际上只是关于资源使用情况。


您没有向我们展示任何代码,但是如果您完成了实际的请求对象,并且只是有其他事情要做,恰好将请求对象保留在范围内,那么您可以稍微重组您的代码,以便您可以继续执行您需要执行的其他操作(不访问请求/响应对象(,同时允许它们被垃圾回收。

最新更新