我有一个正在通过外部API修改的流星应用程序。该API修改了Meteor应用读取的mongodb。我遇到的问题是,API对数据库所做的更改没有像我希望的那样在流星应用程序上呈现的快。如果我每10秒钟将新数据发布到我的API,我的流星应用程序似乎仅每30秒钟更新一次。如何提高流星更新/监听变化的速率?以下是我编写的一些代码示例。
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
});
});
}
最佳答案
您是否向流星后端提供了OpLog URL?
如果不是,那么流星正在使用poll-and-diff
算法
昂贵(CPU和内存)
仅每10秒运行一次(因为1.)
通过使用MongoDB OpLog,它将立即运行。
这对于OpLog&Meteor应该很有用
https://meteorhacks.com/mongodb-oplog-and-meteor
Meteor 0.7博客文章,首次引入oplog时
http://info.meteor.com/blog/meteor-070-scalable-database-queries-using-mongodb-oplog-instead-of-poll-and-diff
关于javascript - 强制 meteor 更新远程更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33599348/