2010-10-07 63 views
0

我正在寫一個輕量級的基於Tornado的彗星服務器。 我想在redis中保存「自我」對象以保持狀態。 這個工作嗎?Redis中的龍捲風會話

一開始,我不能連自我序列化到存儲在Redis的..

這是錯誤

File "sessionsupport.py", line 27, in get 
    this = cPickle.dumps(self,1) 
    File "/home/test/lib/python2.7/copy_reg.py", line 70, in _reduce_ex 
    raise TypeError, "can't pickle %s objects" % base.__name__ 
TypeError: can't pickle instancemethod objects 

上我將如何做到這一點有什麼建議?

+0

從什麼語境中的 「自我」 的對象存儲在哪裏?一個RequestHandler實例? – 2010-10-27 15:16:51

回答

2

我不確定self對象是指RequestHandler的實例,還是某種類型的Session實例。不管它是什麼,在酸洗和保存到redis之前,你可能都想把你的對象轉換成字典。至少,這是我用MongoDB做的。我的龍捲風會議:

  • 是包含
  • 將被分配一個ID這是我想要整個用戶的會話持續下去的任何數據dict S:
    • 在我的數據存儲中的字典一起保存(Redis的或MongoDB中)
    • 在用戶的cookie
+0

是的,它指的是指向特定客戶的RequestHandler .. 你如何從Tornado做到這一點? – Arenstar 2011-03-18 18:27:47