2012-09-27 67 views
2

我構建了一個服務器客戶端android應用程序,其中用戶正在向服務器註冊,並且每個用戶配置文件都保存在數據庫中以及保存在應用程序會話中的收集池中。存儲在應用程序會話中的集合變爲空

我保存會話中所有現有用戶的原因是用戶經常更新其他用戶。並從谷歌應用程序引擎數據存儲讀取,往往會花費我很多。

這工作正常的第一個月,但今天,我有我的會議1000配置文件開始變壞。突然間,配置文件的集合變爲空,我不得不「重新啓動」服務器以使配置文件再次加載到會話中。

我想我的設計保存會話中的所有配置文件是錯誤的。我對嗎? 或其他可能導致空集合?

有什麼設計模式可以用來做事嗎?

回答

0

我不知道會話的內部以及它們在GAE中的處理方式,但我的第一個猜測是會話變得太大,並且無法在請求之間正確序列化。

我的建議是使用MemCache來存儲用戶列表。一個典型的模式是將你需要的表存儲在數據庫中(包括你提到的每個用戶的連接池)。然後,在首次創建會話或實際需要時,將數據從數據庫加載到MemCache中。

緩存後,您可以直接使用它,無需額外的數據庫查詢。如果正確完成,這是非常強大的,不應該讓你遇到性能問題。請記住,系統可以隨機清除MemCache,因此如果MemCache尚未初始化或重置,您需要確保從數據庫加載MemCache。

相關問題