我希望有人能澄清這對我來說:開發服務器全局緩存(Python)的
是否GAE開發服務器也像生產服務器不緩存的Python全球範圍內? 我的印象是,它沒有。 我無法在文檔中找到任何關於此的信息。
感謝
昆特
我希望有人能澄清這對我來說:開發服務器全局緩存(Python)的
是否GAE開發服務器也像生產服務器不緩存的Python全球範圍內? 我的印象是,它沒有。 我無法在文檔中找到任何關於此的信息。
感謝
昆特
是的,它的作用。但是當您更改代碼時,開發服務器將重新啓動,併爲您的模塊提供全新的名稱空間。
Python在模塊之間沒有「全局範圍」(例如PHP)。它有命名空間。它們大多是模塊名稱空間(當您執行導入時創建),並且如您所知,GAE caching imports。該實例正在運行時該高速緩存處於活動狀態。一般情況下,實例是一個python的進程,python將變量值保存在內存中,直到至少有一個引用爲止。
由於開發服務器模擬生產服務,它的工作方式相同,但區別在於devserver監視您對文件所做的更改(並且我注意到不僅僅是文件)並在需要時重新加載它們。要保證重置模塊導入緩存,您還需要像生產中一樣重新啓動服務器。
什麼意思是「緩存全球範圍」,你認爲生產環境是這樣的嗎? –
那麼,在生產環境中,您可以在模塊中定義一個全局變量,並且GAE將其緩存在當前實例的內存中。所以它被保存在請求之間。您可以使用它來創建一個當前實例的本地「真實」內存緩存。但在開發服務器,我注意到它沒有保存在請求之間。 – Quint