ric*_*uck 20 mongodb node.js meteor
我收到以下错误:
连接超时.没有收到心跳.
访问我的meteor app(http://127.0.0.1:3000
)时.该应用程序已移至具有相同代码库的新PC - 并且服务器运行良好且没有错误,我可以访问mongodb.什么会导致上述错误?
当集合较大时,似乎会出现问题.但是我让它在另一台即时加载集合的计算机上运行.在最终失败之前,与袜子的连接需要一分钟并且会增大
Meteor 的 DDP 实现了 Sockjs 的 Heartbeats,用于长轮询。这可能是由于 DDP Heartbeat 默认超时时间为 15 秒。如果您访问大量数据并且需要很长时间(在您的情况下为 1 分钟),DDP 将在被操作阻止足够长的时间后超时,以防止连接被代理关闭(这可能更糟),并且然后再次尝试重新连接。这可能会永远持续下去,您可能永远无法完成该过程。
您可以尝试假设在 DDP 关闭连接之前在短时间内断开连接并重新连接,并将数据库访问划分为较短的连续进程,您可以在每次迭代中拾取这些进程,看看问题是否仍然存在:
// while cursorCount <= data {
Meteor.onConnection(dbOp);
Meteor.setTimeout(this.disconnect, 1500); // Adjust timeout here
Meteor.reconnect();
cursorCount++;
}
func dbOp(cursorCount) {
// database operation here
// pick up the operation at cursorCount where last .disconnect() left off
}
Run Code Online (Sandbox Code Playgroud)
但是,当断开连接时,所有实时更新也将停止,但显式重新连接可能会弥补较小的阻塞。
请参阅Google 群组和Meteor Hackpad上关于此问题的讨论
归档时间: |
|
查看次数: |
3000 次 |
最近记录: |