我正在使用同时具有在线数据存储(GAE)和离线数据存储(HTML5 websql)的应用。因此,要解决同步问题,我正在尝试实现锁定机制。 它应该像信号量一样工作,或者作为主从机制。用户可以获得锁定,如果不可用,可以请求锁定。 (尽管饥饿是可能的,但它由用户政策处理)
App Engine中是否提供了实现此锁定机制的任何工具。
提前感谢...
答案 0 :(得分:2)
在GAE数据存储区中没有明确的锁定机制。
但是,数据存储区支持事务,因此您可以创建(例如)SyncLock
实体并在事务中将属性locked
设置为true
。
请注意,事务不涵盖创建SyncLock
,但更新现有的SyncLock
。因此,不同的会话应该尝试访问相同的SyncLock
实体,这只有在实体具有相同ID时才能实现。因此,您应该使用userID作为{{1}}的ID。