MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mutex com MongoDB


O principal recurso do MongoDB nesta área é que uma atualização para um único documento é atômico. Dos documentos :

Então, para sua atualização de:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});

isso significa que ele encontrará atomicamente um documento que corresponda aos critérios e o atualizará. Então, sim, isso funcionará bem para atribuir uma tarefa a um determinado servidor.

Veja esta outra postagem para obter mais detalhes sobre como implementar uma fila de trabalho compartilhada no MongoDB. Um ponto-chave mencionado é o uso de findAndModify para realizar a atualização e retorne o documento atualizado.