【问题标题】:Meteor error message: "Failed to receive keepalive! Exiting."Meteor 错误消息:“无法接收 keepalive!退出。”
【发布时间】:2012-06-23 21:07:36
【问题描述】:

我刚刚开始构建一个新的 Meteor 应用程序。到目前为止,我唯一做的就是添加一个集合。它会启动,正常运行大约 5 分钟,然后给我错误消息“无法接收 keepalive!退出。”

什么是无法从什么接收keepalive?我认为这与 Mongo 有关,因为这是我添加的唯一内容。谷歌搜索错误消息除了显示此错误消息而不是他们的应用程序的 Meteor 网站之外什么都没有。

我的 MongoDB 集合中已经包含不是由 Meteor 创建的数据,如果这有什么不同的话,它会超过 4GB。

这是完整的应用程序。

pitches_sum = new Meteor.Collection( 'pitches_sum' );

if (Meteor.is_client) {
  Template.hello.greeting = function () {
  return "Welcome to my site.";
  };

  Template.hello.events = {
    'click input' : function () {
      // template data, if any, is available in 'this'
      if (typeof console !== 'undefined')
        console.log("You pressed the button");
    }
  };
}

if (Meteor.is_server) {
  Meteor.startup(function () {
  console.log( '**asdf**' );        
  });
}

如果我注释掉pitches_sum = new Meteor.Collection( 'pitches_sum' ); 行,那么我认为我不会再收到错误消息了。

【问题讨论】:

  • 尝试仅在服务器中指定集合,现在它也为客户端加载。如果仍然给出相同的错误意味着问题是服务器到 mongo 连接。
  • 我在没有大型数据集的情况下遇到了同样的问题,但是有 16 个连接的对等方都试图读取相同的约 100 条记录。

标签: meteor


【解决方案1】:

这是由我的大型数据集和自动发布引起的。由于启用了自动发布,Meteor 试图将整个 4GB 集合发送到客户端。尝试处理所有数据会阻止客户端响应服务器的保持活动 ping。或者类似的东西。

使用meteor remove autopublish 删除自动发布,然后编写我自己的发布和订阅函数解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多