0

我正在开发一个应用程序,该应用程序让用户轮流将数据放入数据存储区,然后通过通道将 id 广播给用户。有时,当用户 get() 时,它会显示前一个用户的更改。我怎样才能防止这种情况?有没有办法让 put() 块直到它被写入?

4

2 回答 2

1

查看文档中的祖先查询。

https://developers.google.com/appengine/docs/python/datastore/structuring_for_strong_consistency

您现在看到的是最终一致的结果,尽管在这种情况下您需要高度一致的结果。

于 2013-05-03T05:55:58.693 回答
0

数据存储上的操作分两部分进行:提交阶段和应用阶段。

您可以在https://developers.google.com/appengine/docs/python/datastore/overview#Datastore_Writes_and_Data_Visibility了解更多信息

但简短的版本是数据存储操作在提交阶段之后返回,而不是在应用阶段之后。您可能已经告诉数据存储添加/更新/删除一个对象,但即使在特定操作返回后,该操作也需要几毫秒才能执行。

您可能需要在代码中添加人为延迟。

import time
time.sleep(1)
于 2013-05-03T08:00:00.927 回答