Question

Je m'interrogeais sur la mise en place de mes propres sessions (plus pour un exercice que pour toute autre chose) pour une application GAE sur laquelle je travaillais ... au début, je pensais utiliser le magasin de données pour stocker les données de la session. Toutefois, chaque fois que quelque chose doit être ajouté au "compartiment" de la session, il est nécessaire d’enregistrer le fichier dans le magasin de données. Évidemment, c'est mauvais puisque nous voulons minimiser nos écritures. Ensuite, j'ai pensé à utiliser memcache ... cela semblait être une bonne idée, mais nous avons été confrontés à des problèmes de corruption de session en raison du fait que memcache était "expulsé par la pression de la mémoire". par Google. Cela signifie-t-il qu'il ne nous reste que les options suivantes:

  1. Stocker toutes les données de session dans des cookies
  2. Écriture de toutes les données de session dans le magasin de données et le memcache, puis lecture uniquement dans le memcache

Quelqu'un a-t-il d'autres idées?

Était-ce utile?

La solution

Je suggère de vérifier (et de contribuer à) ces trois mises en œuvre de sessions Appengine avant de déployer la vôtre:

Vos options semblent bonnes, mais leur choix dépend probablement de la taille des données de session dans votre application.

Autres conseils

MISE À JOUR - 21 mars 2011

Au moment de cette réponse, le correctif de app-engine est abandonné et les utilitaires offre les pires fonctionnalités que gae-sessions .

Si vous utilisez web2py (version 1.46 ou ultérieure), les sessions sont activées par défaut sur GAE. Ceci est réalisé par les trois lignes suivantes de code web2py en haut du modèle scaffoling:

from gluon.contrib.gql import *
db=GQLDB()
session.connect(request,response,db=db)

Voici un exemple d'action qui compte:

def index():
    session.c=session.c+1 if session.c else 1
    return dict(counter=session.c)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top