0

我正在开发一个应用程序,让用户轮流put() - 将数据放入数据存储区,然后通过频道向用户发送id。有时,当用户获得()时,它会显示前一个用户的更改。我怎样才能防止这一点?有没有办法让put()块直到它被写入?防止db.get()返回过期的记录

+0

发表一些代码。你在使用交易吗? – dragonx 2013-05-02 16:16:33

回答

0

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

您可以在https://developers.google.com/appengine/docs/python/datastore/overview#Datastore_Writes_and_Data_Visibility

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

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

import time 
time.sleep(1) 
+0

我不认为增加人造延迟是正确的解决方案。如果申请阶段在这种情况下花费超过1秒钟,你会怎么做? – ssidorenko 2013-05-03 14:57:52