Kluczową funkcją MongoDB w tym obszarze jest aktualizacja jednego dokument jest atomowy. Z dokumentacji :
Więc dla twojej aktualizacji:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
oznacza to, że automatycznie znajdzie dokument spełniający kryteria, a następnie go zaktualizuje. Więc tak, to zadziała dobrze, aby przypisać zadanie do danego serwera.
Zobacz ten inny post
aby uzyskać więcej informacji na temat implementacji wspólnej kolejki roboczej w MongoDB. Kluczową kwestią, o której wspomniano, jest użycie findAndModify
do wykonania aktualizacji i zwróć zaktualizowany dokument.