node.js 从 0.2.6 升级到 0.4.7 时出现超时问题?

发布于 2024-11-07 11:20:33 字数 276 浏览 2 评论 0原文

我最近将一个老化的应用程序从 0.2.6 升级到 0.4.7。升级过程非常顺利,大部分问题似乎都与库有关。我正在使用express 来服务rest api 调用。

当应用程序启动时,会发生大量预取。有一些非常慢的调用被启动。在节点 0.2.6 上,这些调用将在 15-30 秒内返回。升级后,调用在一分钟后返回(!),远远超过了我们在其他地方设置的超时限制,因此应用程序崩溃了。

node.js 中是否有任何更改会导致此问题?也许关于最大同时连接数? request 和express 的最新版本怎么样?

I recently did an upgrade of an aging app to 0.4.7 from 0.2.6. The upgrade went pretty smoothly and most of the problems seemed to be related to libraries. I'm using express to server up rest api calls.

When the app starts up, a lot of prefetching happens. There are some very slow calls that get kicked off. On node 0.2.6 these calls would return anywhere from 15-30 seconds. After the upgrade the calls return after a minute (!) well past the timeout limit we have set elsewhere, so the app breaks.

Have there been any changes in node.js that would cause this? Perhaps something about maximum simultaneous connections? What about the latest versions of request and express?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷︶言冷语的世界 2024-11-14 11:20:33

Node 0.4 引入了限制。 Request 采用 http.Agent.maxSockets 默认值,即 5。当我将其强制设置为 100 时,页面再次停止超时。我通过阅读请求文档弄清楚了这一点:

因为节点0.4.0有一个内部
池化机制是首选方式
共享连接是使用代理
新的请求简化了
池 API。

并使用选项对象:

  • pool - 包含这些请求代理的哈希对象。如果
    省略此请求将使用
    设置为节点的全局池
    默认 maxSockets。
  • pool.maxSockets - 包含最大数量的整数
    池中的套接字。

Node 0.4 introduces throttling. Request honors the http.Agent.maxSockets default, which is 5. When I forced this up to 100, the pages stopped timing out again. I figured this out by reading the Request docmentation:

Because node 0.4.0 has an internal
pooling mechanism the preferred way of
sharing a connection is using agents
which request simplifies with it's new
pool API.

and with the options object:

  • pool - A hash object containing the agents for these requests. If
    omitted this request will use the
    global pool which is set to node's
    default maxSockets.
  • pool.maxSockets - Integer containing the maximum amount of
    sockets in the pool.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文