Javascript 强制Meteor更新远程更改?

Javascript 强制Meteor更新远程更改?,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我有一个meteor应用程序,正在通过外部API进行修改。API修改Meteor应用程序读取的mongodb。我遇到的问题是,API对数据库所做的更改没有像我希望的那样在meteor应用程序上快速呈现。如果我每10秒向API发布一次新数据,我的meteor应用程序似乎只会每30秒更新一次。如何提高meteor更新/侦听更改的速率?下面是我编写的一些代码的示例 UsageData = new Mongo.Collection('UsageData'); if (Meteor.isClient)

我有一个meteor应用程序,正在通过外部API进行修改。API修改Meteor应用程序读取的mongodb。我遇到的问题是,API对数据库所做的更改没有像我希望的那样在meteor应用程序上快速呈现。如果我每10秒向API发布一次新数据,我的meteor应用程序似乎只会每30秒更新一次。如何提高meteor更新/侦听更改的速率?下面是我编写的一些代码的示例

UsageData = new Mongo.Collection('UsageData');

if (Meteor.isClient) {

  // This code only runs on the client
  angular.module('dashboard', ['angular-meteor']);

  angular.module('dashboard').controller('DashboardCtrl', ['$scope', '$meteor',
    function($scope, $meteor) {

      $scope.$meteorSubscribe('usageData');

      $scope.query = {};

      $scope.data = $meteor.collection(function() {
        return UsageData.find($scope.getReactively('query'), {
          sort: {
            createdAt: -1
          },
          limit: 1
        });
      });

    }
  ]);
}

// This code only runs on the server
if (Meteor.isServer) {
  Meteor.publish('usageData', function() {
    return UsageData.find({}, {
      sort: {
        createdAt: -1
      },
      limit: 20
    });
  });
}

您是否向meteor后端提供了OpLog URL?
如果不是,那么meteor使用的是
poll和diff
算法

  • 昂贵(cpu和内存)
  • 仅每10秒运行一次(因为1。)
  • 通过使用MongoDB OpLog,它将立即运行

    这对于OpLog和Meteor应该很有用

    Meteor 0.7博客文章,首次引入oplog时

    如果直接从mongo控制台进行更改,更新需要多长时间才能传播到客户端?这有助于缩小问题的范围。当我直接从控制台进行更改时,在客户端上传播大约需要5-10秒。这不是本地控制台。这两种行为都不正常@webdeb下面有一个有趣的线索。如果有什么不同,当我在本地运行应用程序并使用默认的meteor mongodb而不是在启动时传递MONGO_URL时,mongodb会立即插入并更新客户端。所以问题出在我使用的远程数据库中…对。然后,您应该共享该服务器配置的各个方面。这就是问题所在。上面的代码不是问题所在。