2015-03-15 3 views
0

В моем приложении gae пользователь может выполнить действие (купить что-то). Мне нужна эта информация, хранящаяся постоянно и доступная сразу по всем запросам всех сеансов этого пользователя на нескольких устройствах/браузерах. Я использую сеансы webapp2_extras. Способ, которым я собираюсь это сделать:Обновление приложения для всех сеансов для пользователя

1) добавление поля action_happened в модель пользователя и его доступность в сеансе путем добавления его в список в конфигурации webapp2_extras.auth ['user_attributes'] , Но это не работает, если пользователь не вышел на все сеансы.

или 2) создать запись memcache (поддерживаемую хранилищем данных) для каждого пользователя, например user_id_action_happened, и проверить, является ли оно истинным или ложным для каждого запроса. Это мой предпочтительный метод.

Есть ли другой способ сделать это?

+0

Нет, я думаю, '2)' ваш лучший подход - основные идеи - иметь эту запись в хранилище данных и запрашивать ее при каждом запросе, а еще одна (возможно, стоит: -) оптимизация memcache, но не измените функциональность. –

ответ

0

Я думаю, что сохранение в базе данных и выполнение запроса по каждому запросу является наиболее естественным вариантом.

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

+0

Хорошо, спасибо за ваш ответ! Я попытаюсь изменить свой дизайн, чтобы разрешить эту информацию только по конкретным пользовательским запросам. – user3526468

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