【发布时间】:2018-06-07 17:47:51
【问题描述】:
我最近开始学习meteor,我正在开发一个类似于公交车时刻表应用程序的应用程序;我有几个屏幕(大约 30 个带有浏览器的设备),我将它们全部连接到一个在 cmd 上运行我的应用程序的本地主机(该应用程序使用带有本地 MongoDB 的 windows 10 离线,没有在线服务器)。每组屏幕都显示了从 MongoDB 集合中提取的相关巴士及其时间表。
该应用程序过去运行良好,但当我添加 10 个屏幕时,客户端似乎在几分钟后与服务器断开连接;我有在屏幕上显示服务器时间的流星调用,这一次在服务器掉线时显示为 undefined,我无法通过 MeteorToys 看到我的任何收藏文档,我看到了这些收藏,但是文档为 0。另外,我无法登录到我的管理页面(这是我制作的基本用户界面,简单的 MongoDB 帐户集合)
值得一提的是,整个应用并没有崩溃;我仍然可以导航到我的页面,因为我的布局、HTML 和 CSS 仍然显示,只是我的服务器相关功能停止了。
我意识到这是一个流量问题,因为当我断开所有屏幕并运行应用程序时,它运行良好。另外,当我一一重新连接时,它似乎也可以正常工作。
我在客户端的控制台上没有收到任何错误,在服务器 CMD 上,应用程序没有崩溃,它一直在运行,没有任何错误。
另外,我每秒都向控制台添加 Meteor.status() ping,我得到了这个
{status: "connected", connected: true, retryCount: 0}
从技术上讲,这意味着服务器没有离线?
我很迷茫,我该怎么做才能纠正这个问题?
更新:
我注意到我有几个每秒运行的 ServerSessions 从服务器获取我的时间。我将它们更改为正常会话,我现在面临一个不同的问题;我认为某处存在内存泄漏;当它冻结时,我注意到我的 RAM 使用量飙升至 8GB(我将我的 max_old_space 设置为 8912,所以这应该不是问题)正常使用量大约是在运行时大约 600-900MB
然后我得到FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
=> Exited with code: 3
在浏览器上使用503 (Service Unavailable) 无法访问服务器
然后服务器重新启动,它做同样的事情。帮助:(
【问题讨论】:
-
正如维克多的回答中所建议的,你如何运行你的服务器?您是否为生产正确构建了它?
-
我暂时只通过“meteor”或者“npm start”通过CMD运行
-
然后你在开发模式下运行你的流星应用程序,这确实比必要的更多计算并且可能会增加你的RAM使用超时。您应该 build 您的应用用于生产用途。
-
我正在开发这个作为离线解决方案;有没有办法在本地部署它?感谢您的宝贵时间,谢谢!
-
"deploy" 并不一定意味着您必须在公共互联网上发布它。将其视为将您的 Meteor 项目转换为经典节点应用程序。
标签: javascript html css mongodb meteor