我的MongoDB集合被用作作業隊列,並且有3個C++機器可以從這個集合中讀取。問題是那三個人不能完成同樣的工作。所有的工作只需要做一次。來自多個客戶端的MongoDB findAndModify
我通過搜索所有記錄'isDone:False'來獲取所有未完成的作業,然後更新此文檔'isDone:True'。但是如果兩臺機器同時找到相同的文件,它們將同時工作。我怎樣才能避免這種情況?
編輯:我的問題是 - findAndModify是否真的解決了這個問題? (閱讀後A way to ensure exclusive reads in MongoDb's findAndModify?)
我對你的問題感到困惑。'findAnyModify'的重點在於它可以自動發現並修改文檔爲單一操作,從而避免了這個問題。 – JohnnyHK
我不知道看到http://stackoverflow.com/questions/15505176/a-way-to-ensure-exclusive-reads-in-mongodbs-findandmodify –
@EiTkoCaT http://stackoverflow.com/a /829571分之15539348 – assylias