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