我的 MongoDB 集合用作作业队列,并且有 3 台 C++ 机器从该集合中读取。问题是这三个人不能完成同样的工作。所有工作只需要完成一次。
我通过使用“isDone:False”在集合中搜索所有记录来获取所有未完成的作业,然后更新此文档“isDone:True”。但是如果两台机器同时找到同一个文件,它们就会同时做同一个工作。我怎样才能避免这种情况?
编辑:我的问题是 - findAndModify 真的解决了这个问题吗?(看完MongoDb的findAndModify中确保独占读取的一种方式?)