GAE的锁定机制

时间:2012-02-19 19:08:38

标签: google-app-engine google-cloud-datastore

我正在使用同时具有在线数据存储(GAE)和离线数据存储(HTML5 websql)的应用。因此,要解决同步问题,我正在尝试实现锁定机制。 它应该像信号量一样工作,或者作为主从机制。用户可以获得锁定,如果不可用,可以请求锁定。 (尽管饥饿是可能的,但它由用户政策处理)

App Engine中是否提供了实现此锁定机制的任何工具。

提前感谢...

1 个答案:

答案 0 :(得分:2)

在GAE数据存储区中没有明确的锁定机制。

但是,数据存储区支持事务,因此您可以创建(例如)SyncLock实体并在事务中将属性locked设置为true

请注意,事务不涵盖创建SyncLock,但更新现有的SyncLock。因此,不同的会话应该尝试访问相同的SyncLock实体,这只有在实体具有相同ID时才能实现。因此,您应该使用userID作为{{1}}的ID。