7

新しいMeteorアプリの作成を始めたばかりです。これまでに行ったことは、コレクションを1つ追加することだけです。起動し、約5分間正常に実行された後、「キープアライブの受信に失敗しました!終了します」というエラーメッセージが表示されます。

何からキープアライブを受け取れないのは何ですか?私が追加したのはそれだけなので、これは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' );と、エラーメッセージが表示されなくなると思います。

4

1 に答える 1

5

これは、私の大きなデータセットと自動公開が原因でした。自動公開がオンになっていたため、Meteorは4GBのコレクション全体をクライアントに送信しようとしていました。すべてのデータを処理しようとすると、クライアントがサーバーのキープアライブpingに応答できなくなりました。またはその効果への何か。

で自動パブリッシュを削除してmeteor remove autopublishから、独自のパブリッシュおよびサブスクライブ関数を作成すると、問題が修正されました。

于 2012-08-24T15:02:59.390 に答える