2010-04-10 55 views
2

我想在兩個請求之間批量處理一個python字典對象。我想知道做什麼是最好的方法。如何在兩個請求之間傳輸一個python對象?

我想這樣做,因爲我的字典很大,我不能在30秒內完成整個處理。

感謝

+0

什麼樣的處理?爲什麼這麼大?你是否儲存了太多無用的數據? – 2010-04-10 21:43:56

+0

感謝您的回覆Hamish。我實際上沒有測試過。但我的要求已經在過去被殺死,所以這些僅僅是猜測:)讓我測試,然後看看。 – 2010-04-10 21:54:58

+0

好的...你必須告訴我們你在做什麼 - 這會有所幫助。 – 2010-04-10 22:12:10

回答

4

可序列化你的對象(也許pickle,雖然有可能是更有效和具體的方式,如果你的對象的性質是良好約束)和序列化的字節串保存到數據存儲和memcache(我推薦使用只是內存緩存,因爲它只是偶爾可能會發生的緩存是兩個請求之間的「刷新」 - 在這種情況下,你肯定希望能夠從獲取您的序列化的字節串數據存儲!)。

memcache如果你傳遞原始對象,將會爲你醃製 - 但是,由於你需要序列化的字符串以將它放入數據存儲區,所以我認爲最好自己做一個明確的序列化。一旦你得到了一個字符串,後者被醃製的事實(以及隨後在取回時被取消)並不是什麼大不了的事情 - 時間和空間的開銷真的很小。

這種方法存在限制 - 例如,每個密鑰不能超過1MB,所以如果對象真的很大,則需要將序列化的字符串分割爲多個密鑰(以及多個密鑰這樣的兆字節片,事情變得非常笨拙)。

另外,當然,第一個和第二個請求必須「同意」用於序列化數據的存儲和檢索的密鑰 - 也就是說,必須有一個簡單的方法來獲得該密鑰而不會混淆(例如,它可能基於當前用戶的名稱)。

相關問題