2012-04-24 5 views
0

Экстремальный новичок, извиняйтесь заранее, я понятия не имею, что я делаю, но я действительно огляделся.Хранение файлов cookie в Google App Engine

Я загружаю несколько десятков страниц за формой входа и выполняю результаты, работая на GAE. Я бы хотел, чтобы каждая запись страницы и запись базы данных записывались в очередь задач. Когда я перешел на очередь задач, я понял, что у меня проблемы с сеансом.

Я создаю нож с помощью urllib2:

cj = cookielib.CookieJar() 
    session = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    session.addheaders.append(('User-agent', 'Mozilla/4.0')) 
    login_data = urllib.urlencode({ 'username' : 'guest', 
            'password' : 'guest', 
            'Submit1' : 'Submit'}) 
    resp = session.open(self.login_page, login_data, timeout=20) 
    self.session = session 

Раньше я был только инстанцирование этого класса один раз в головной части вещей, создавая переменный экземпляр один сеанс для всех пользователей, а затем передать мое инстанцирование вокруг поддерживать контекст. Использование очереди задач Я не могу передать объекты, поэтому, когда мой обработчик запросов вызван, я не могу дать ему ссылку на открыватель или файл cookie.

Есть ли способ сохранить или передать открыватель или информацию о файлах cookie, чтобы я мог создать новый нож без входа в систему каждый раз? Могу ли я передавать информацию cookie через словарь заголовков для каждого обработчика? Что-то в memcache? Что именно мне нужно передать, чтобы вернуть файл cookie в действительный открыватель?

Огромное спасибо всем, кто пробирается сквозь выше.

ответ

1

Вы можете передать объекты через deferred library вместо taskqueue.

Но по соображениям надежности я рекомендую вам хранить ваши объекты в хранилище данных и только передавать туда ссылку в taskqueue.

+0

Просто я понял, что такое рассол ... Я не понимал, что могу восстановить что-то вроде экземпляра класса из базы данных. Это очень круто. Я попробую поставить его на db и передать ссылку. – user1354036

+0

@ user1354036 Просто не позволяйте власти все идти в вашу голову. ;) Есть некоторые вещи, которые хорошо подходят для рассола, вроде этого (по крайней мере, возможно), а другие - нет, например, данные пользователя. Лично я не думаю, что есть хорошая причина хранить куки в хранилище данных - ссылка не будет намного меньше, чем сам файл cookie. –

Смежные вопросы