Эквивалент блокировки строк в запросе коллекции Cosmos DB - PullRequest
0 голосов
/ 15 марта 2020

У меня есть следующее требование: два экземпляра приложений обрабатывают документы коллекции Cosmos DB, извлекая документ со свойством «status» = «не обработано».

Вот шаги: - Прочитать документы, которые иметь свойство "status" = "не обработано" - пометить документы, полученные как "status" = "inprogress", чтобы другой набор документов не был извлечен тем же набором - обработать документы в приложении и обновить статус документа до «обработано»

В мире SQL мы можем сделать это sh, применив блокировку строки к выбранным строкам и обновив столбец состояния до значения, которое не будет обнаружено другим приложением. Как мы можем выполнить sh это в Космос БД?

Спасибо

1 Ответ

0 голосов
/ 15 марта 2020

AFAIK, такого рода функции недоступны в Azure Cosmos DB. Оба приложения смогут прочитать документ.

Однако вы можете запретить приложению перезаписывать изменения, сделанные другим приложением. Это достигается использованием Optimistic Concurrency Control в базе данных Cosmos.

...