比赛条件
在我的 Meteor 应用程序中,我做了一个observe
within a publish
,在某些条件下插入一些新数据。关键是有时我们有重复的订阅,竞争条件导致我们重复插入的数据。如果不可能有“单例观察者”:
- 我们如何避免竞争条件和数据库上重复插入的数据?
例子:
Meteor.publish("fortuneUpdate", function () {
var selector = {user: this.userId, seen:false};
DailyFortunes.find(selector).observe({
removed: function(doc, beforeIndex){
if(DailyFortunes.find(selector).count()<1)
createDailyFortune(this.userId);
}
});
}