0

我想優化我的GAE webapp以獲得延遲。GAE/Python上的請求之間的異步數據庫訪問

該應用程序有兩個請求通常來來一個接一個。

在第一個請求期間啓動異步數據庫/ memcache請求,然後在以下請求中使用其結果是否安全?

(我知道,第二個請求可能擊中另一個實例。這將是一次不命中處理)

+0

撇開安全問題,你會怎麼建議這樣做? –

+0

@DanielRoseman - 只需在全局名稱空間中保留一個引用即可。 – Srg

+0

通過全局名稱空間,您是否意味着在發生處理第一個請求的實例的記憶中,隨着流量增加和緩存更加有用,減少了在緩存彩票中獲勝的機會? – tesdal

回答

0

你不能在一個請求啓動一個異步API調用,並獲得其在其他結果。 HTTP服務基礎設施將等待在HTTP響應被髮送回去之前完成請求中的所有API調用;代表異步API調用的數據結構將在第二個請求中無用(即使它碰到相同的實例)。

您可能會嘗試使用Appstats來查明您的請求正在進行哪些API調用,並查看是否可以避免使用某些API,或者使用memcache或並行化。

您也可以使用在數據存儲區API中集成了memcache的NDB。

+0

這就是我認爲從閱讀文檔,但奇怪的是,它似乎工作..可能是我得到我的異步請求隱式重新創建並在第二次請求期間再次發送? – Srg

+0

此刻切換到NDB :-)感謝您的出色工作!我希望它早些時候在那裏,所以我不必實施我自己的醜陋 - NDB黑客。 – Srg

+0

我相信你會看到幻影效果,但沒有代碼就不可能說出發生了什麼。這可能不值得調查, –