2

我有一个 Node.js Web 应用程序,它定期对 MongoDB 后端进行 socket.io 调用(每 30 分钟一次)。我可以在本地运行几天没问题。我最近刚刚部署到 Heroku(免费,1 Dyno,使用 MongoLab for DB),一切都启动并运行良好。但是,当更新开始推出时,我在浏览器控制台中收到许多错误,表明更新并没有完全正确,最终(大约 3 或 4 次更新),并且总是以 30% 的 CPU 和800MB RAM(当它通常具有标称 CPU 和大约 300-400MB RAM 时)。

我使用一系列承诺来确保异步数据库更新步骤以完美的顺序发生,并且它们总是在本地进行。但是console.logs 表明应用程序运行不正常,什么时候应该是不可能的,即应用程序在它依赖的promise 解决之前继续运行。这将解释所有错误(例如未定义的变量等)。有没有人在他们的应用程序中看到类似的东西,可以建议从哪里开始寻找解决方案?像我看到的大多数故障排除问题一样,在 Heroku 上部署应用程序或启动应用程序都不是问题。该应用程序运行,连接到端口并在浏览器中出现,没有错误。只是在跑了一会儿之后,事情就变得混乱了。我不知所措。

4

1 回答 1

1

没有看到连接代码和错误很难判断,但最初想到的是设置 connectTimeoutMS 和 socketTimeoutMS 选项(通常我们建议 30 秒或 30000)。我们已经看到了一些问题,配置超时对连接 Heroku 有很大帮助——尤其是在空闲之后。

如果您仍然需要帮助,请发送电子邮件至 support@mongolab.com!我们会帮助找出原因。

于 2013-08-22T17:27:26.200 回答