我試圖實現電子郵件通知功能。我有一個通知的集合,其中每個文檔有以下幾點:以原子方式查找和更新多個文檔
{
userID: {type: ObjectId, index: true, required: true},
read: {type: Boolean, default: false, index: true},
emailed: {type: Boolean, default: false, index: true},
}
我有一個節點CronJob那一天一次調用這是應該做以下(僞)功能:
foreach (user)
db.notifications.find({
userID: user._id,
read: false,
emailed: false
}, function(e, notifications) {
set emailed to true
sendNotificationsEmail(user, notifications)
});
然而我找不到一種方法來獲取相關的通知,並以原子方式將其標記爲「通過電子郵件發送」,以便如果此代碼在同一時間在多個服務器上執行,則用戶不會收到競爭狀態多封電子郵件。
任何想法?
不要在頻道上提問,請在頻道上提問。 –
@CrimsonTulip:用這麼多信息填充IRC頻道看起來很垃圾! –