Блокирование одновременного доступа к хранилищу данных App Engine - PullRequest
1 голос
/ 15 июля 2011

Я создаю приложение на Google App Engine, которое использует хранилище данных для хранения информации о текущем состоянии сервера. Когда устройство Android запрашивает сервер, сервлет получает сущность из хранилища данных, изменяет ее и помещает обратно в хранилище данных для обновления записи хранилища данных.

Однако иногда, когда один экземпляр сервлета получил данные из хранилища данных, другой экземпляр сервлета делает то же самое, прежде чем первый экземпляр вернет обновленные данные обратно. Это вызывает проблемы синхронизации в моем приложении.

Есть ли способ "заблокировать" хранилище данных, чтобы ничто не могло с ним работать до тех пор, пока блокировка не будет снята?

Спасибо.

1 Ответ

6 голосов
/ 15 июля 2011

Транзакции - это то, что вам нужно.

Внимательно прочитайте документы: существуют строгие ограничения на то, что вы можете сделать в транзакции. В частности, вы можете выполнять запросы только в пределах одной группы объектов, то есть набора объектов с одним и тем же предком.

...