賽condiditions
在我的流星申請,我一個publish
內提出observe
,在一定的條件下插入一些新的數據。問題是,有時我們有重複訂閱,競爭條件導致我們重複插入的數據。 如果是not possible to have "singleton observers":如何避免cursor.observe上的競爭條件?
- 我們如何才能避免對數據庫競爭條件和重複插入的數據?
例子:
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);
}
});
}
這個問題已經被從How cursor.observe works and how to avoid multiple instances running?
請注意,我沒有說過不可能做單身觀察者,只是他們的某一類會在以後的版本中爲你自動完成(我相信)。 –