Торнадо в Редис - PullRequest
       42

Торнадо в Редис

0 голосов
/ 07 октября 2010

Я пишу легкий кометный сервер на базе 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

какие-либо предложения о том, как я это сделаю?

1 Ответ

2 голосов
/ 27 октября 2010

Я не уверен, относится ли объект self к экземпляру RequestHandler, или, возможно, к какому-то типу экземпляра Session, который у вас есть. Что бы это ни было, вы, вероятно, захотите преобразовать свой объект в dict, прежде чем использовать его и сохранить в redis. По крайней мере, это то, что я делаю с MongoDB. Мои сеансы Торнадо:

  • dict s, которые содержат любые данные, которые я хочу сохранить в течение сеансов пользователей
  • Назначается идентификатор, который:
    • Сохранено вместе с dict в моем хранилище данных (redis или MongoDB)
    • Хранится в куки пользователя
...