La característica clave de MongoDB en esta área es que una actualización de un único El documento es atómico. De los documentos :
Entonces, para su actualización de:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
esto significa que encontrará atómicamente un documento que coincida con los criterios y luego lo actualizará. Así que sí, eso funcionará bien para asignar una tarea a un servidor determinado.
Consulte esta otra publicación
para obtener más detalles sobre la implementación de una cola de trabajo compartida en MongoDB. Un punto clave que se menciona allí es el uso de findAndModify
para realizar la actualización y devolver el documento actualizado.