2010-04-16 52 views
1

我正在尋找一種方法來保持應用程序引擎(python)中的持久全局變量的等價物。我在做的是創建一個全局類型,我初始化一次(即當我測試時重置所有數據庫對象)。我有像全球計數器那樣的東西,或者是下一個ID來指定我創建的某些種類。谷歌應用程序引擎持久性全局

這是一個體面的方式來做這種事情或通常有另一種方法是使用?

+0

您可以使用一個表來存儲您需要的每個全局變量的鍵值對嗎? – bakkal 2010-04-16 01:25:59

+0

確實需要「爲我創建的某些種類創建下一個ID」嗎?如果在同一時刻創建2個實例,會發生什麼情況,您是否與共享相同ID的2個實體發生衝突?你可以使用數據存儲對象自己的ID:object.key()。id() – Emilien 2010-04-19 11:20:25

回答

5

數據存儲是唯一可以保證的地方-也是可修改的持續數據。因此,您可以擁有一個大對象或多個較小的對象(具有name屬性和其他屬性),具體取決於您所需的訪問模式 - 但必須位於數據存儲中。您可以使用memcache來獲得更快的緩存,通常會在整個查詢中持續存在,但任何memcache條目都可能隨時消失,因此您將始終需要它獲得數據存儲的支持(特別是,任何更改都必須轉到數據存儲,不是只是到memcache)。

+0

好的,很好的迴應。這聽起來像創建某種類型的方法,我創建一個實例並在需要時訪問是實現方式(除非我不正確地理解響應)。謝謝! – Joey 2010-04-16 01:43:22

+0

@Joey,除非你需要在你的訪問中更具選擇性,一個實例的方法是可行的(如果兩個不同的查詢可以同時修改實例,那麼要小心:當然,任何修改都需要一個重新讀取的事務,更改和存儲,否則這些更改可能會互相影響)。 – 2010-04-16 01:49:35