0

軽量の Tornado ベースのコメット サーバーを作成しています。状態を維持するために、「自己」オブジェクトを 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

これを行う方法について何か提案はありますか?

4

1 に答える 1

2

selfオブジェクトが のインスタンスを参照しているのRequestHandlerか、それともあなたが持っている何らかのタイプのインスタンスを参照しているのかはわかりSessionません。いずれにしても、ピクルして redis に保存する前に、オブジェクトを dict に変換する必要があるでしょう。少なくとも、それが私が MongoDB で行っていることです。私の竜巻セッション:

  • dictユーザーのセッション全体で保持したいデータを含むです
  • 次の ID が割り当てられます。
    • 私のデータストア(redisまたはMongoDB)に辞書とともに保存されました
    • ユーザーの Cookie に保存されます
于 2010-10-27T15:23:53.740 に答える