2010-10-20 95 views
6

我正在開發一個使用內存緩存的App引擎應用程序。由於您的應用的所有版本之間只共享一個memcache,因此我可能會將錯誤數據從新版本發送到生產版本memcache。爲了防止這種情況發生,我想我可以將應用程序版本附加到memcache密鑰字符串中,以允許各種版本的應用程序保持其數據分離。App引擎版本,Memcache

我可以手動做到這一點,但我想在版本拉離的app.yaml

我怎樣才能從Python代碼中訪問應用程序的版本?

回答

12

os.environ變量包含一個可以使用的密鑰CURRENT_VERSION_ID。它的價值由來自app.yaml的version和一段時間連在一起組成,我懷疑是api_version。如果我將version設置爲42,它會給我42.1的值。你應該沒有問題單獨提取版本號,但保持api_version也不是一個壞主意。

編輯:

@Nick約翰遜指出,這一時期的權數是次版本,這是每一個部署你的代碼的時間遞增的一個數字。在開發服務器上,這個數字總是1.

+0

謝謝,我打算調用os.environ.get('CURRENT_VERSION_ID','') – 2010-10-20 10:42:21

+3

該版本的第二部分是'minor'版本ID。在開發服務器上它總是1,但是在生產中它隨每次部署而變化。 – 2010-10-20 11:44:05

+0

@尼克約翰遜,謝謝你指出。這是很好的知道。 – 2010-10-20 11:45:45