La caratteristica chiave di MongoDB in quest'area è l'aggiornamento a un single il documento è atomico. Da i documenti :
Quindi per il tuo aggiornamento di:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
ciò significa che troverà atomicamente un documento che corrisponde ai criteri e quindi lo aggiornerà. Quindi sì, funzionerà bene per assegnare un'attività a un determinato server.
Vedi questo altro post
per maggiori dettagli sull'implementazione di una coda di lavoro condivisa in MongoDB. Un punto chiave menzionato è l'uso di findAndModify
per eseguire l'aggiornamento e restituire il documento aggiornato.