Ключовата функция на MongoDB в тази област е актуализацията до единичен документът е атомен. От документите :
Така че за вашата актуализация на:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
това означава, че автоматично ще намери документ, който отговаря на критериите, и след това ще го актуализира. Така че да, това ще работи добре за възлагане на задача на даден сървър.
Вижте тази друга публикация
за повече подробности относно внедряването на споделена работна опашка в MongoDB. Ключов момент, който се споменава там, е използването на findAndModify
и за извършване на актуализацията и върнете актуализирания документ.