MongoDB中没有固有的文档级锁定或分布式锁驱动程序API。
MongoDB用于分割分割的内部锁定&迁移对分片群集的配置服务器使用两阶段提交模式。您可以自己实现类似的模式,MongoDB文档中有一个示例: 执行两阶段提交 。
如果您只需要一个信号量来防止工作人员同时更新同一个帐户文档,这可能是一种过度杀伤力。更简单的方法是添加咨询 lock 字段(或嵌入式文档)到您的帐户文档,以指示当前正在使用该文档的工作进程。工作人员启动时可以设置锁定,完成时可以移除锁定。您可能希望锁定信息包含工作进程ID和时间戳,因此可以找到过时的锁定。除去。
lock
请注意,任何方法都需要在工作进程之间进行协调,以检查并遵守锁定实现。