2013-09-21 15 views
2

在GAE devserver上運行,我POST到我的REST URL插入一個新行。我得到一個反映插入項目的JSON響應。如果我然後轉到API瀏覽器並查詢GET URL,則新插入的項目丟失。在20秒左右,以及4或5個GETS之後,最終新項目被包括在響應中。GAE /終端緩存如何/爲什麼工作?

端點代碼是默認生成的代碼。

任何想法,這種緩存/異步行爲來自,以及如何我可以刪除它?

回答

1

這是GAE的數據存儲的最終一致性行爲。它在GAE文檔中有詳細記錄。

您必須重寫您的GET查詢才能完全一致。

這裏是一個開始: https://developers.google.com/appengine/docs/python/datastore/structuring_for_strong_consistency

+0

雖然我不懷疑答案,但我很好奇爲什麼我在devserver中看到它。 devserver是否故意延遲寫入來模擬實時環境? – pinoyyid

+0

好問題。 「舊」devserver(1.7.6之前)默認爲完全一致的行爲,你需要一個命令行參數來強制它模擬最終一致的行爲。新的devserver是相反的,並默認最終一致的行爲。您可以使用--datastore_consistency_policy命令行標誌來切換它並確定這是否是真正的原因:https://developers.google.com/appengine/docs/python/tools/old_devserver – dragonx