У меня более 100 рабочих потоков, которые собираются опросить базу данных в поисках новой работы.
Чтобы получить задание, потоку необходимо изменить состояние пакета документов с NEW
на IN_PROGRESS
, чтобы другие потоки не могли просматривать одно и то же задание.
Это прекрасно решается в PostgreSQL с помощью оператора SELECT FOR UPDATE SKIP LOCKED WHERE status = "NEW"
.
Есть ли способ сделать такое атомарное обновление в MongoDB для одного документа? Для выпечки?