2008-10-24 11 views
12

मैं एक जीएई ऐप के लिए अपने स्वयं के सत्र (किसी अन्य चीज़ की तुलना में व्यायाम के लिए अधिक) लागू करने के बारे में सोच रहा था ... सबसे पहले मैं सत्र डेटा स्टोर करने के लिए डेटास्टोर का उपयोग करने की सोच रहा था। हालांकि, हर बार सत्र 'बाल्टी' में कुछ जोड़ने की जरूरत होती है, इसे डेटास्टोर को सहेजने की आवश्यकता होती है। जाहिर है कि यह बुरा है क्योंकि हम अपने लेखन को कम करना चाहते हैं। तब मैंने memcache का उपयोग करने के बारे में सोचा ... एक अच्छा विचार की तरह लग रहा था, लेकिन फिर Google द्वारा "स्मृति दबाव के माध्यम से निकाले जाने" के कारण हमें संभावित सत्र भ्रष्टाचार के मुद्दों का सामना करना पड़ रहा है। तो इसका मतलब यह है कि हम केवल निम्नलिखित विकल्पों के साथ छोड़ दिया जाता है:GAE में सत्रों को प्रभावी ढंग से कार्यान्वित कैसे करें?

  1. कुकीज़
  2. डेटा स्टोर और मेमकैश करने के लिए सभी सत्र डेटा लेखन में सभी सत्र डेटा संग्रहीत करने और उसके बाद ही मेम्कैश

किसी से पढ़ क्या कोई अन्य विचार है?

उत्तर

3

मैं बाहर की जाँच (और के लिए योगदान दे) अपनी खुद की बाहर चल पहले appengine सत्र के इन तीन कार्यान्वयन का सुझाव:

आपके विकल्प ठीक लग लेकिन उनके बीच चयन शायद आपके आवेदन में सत्र डेटा के आकार पर निर्भर करता है।

+1

@Alexander Kojevnikov: ऐसा लगता है कि ऐप्लिकेशन इंजन-उपयोगिताओं लिंक की तरह टूटी हुई है। –

+0

@ ब्रायन: फिक्स्ड, धन्यवाद! –

+2

विचार करने के लिए एक और: [gae-session] (http://wiki.github.com/dound/gae- सत्र) सबसे तेज़ और सरल कार्यान्वयन उपलब्ध है। उपलब्ध पुस्तकालयों की तुलना यहां है: http://wiki.github.com/dound/gae-sessions/comparison-with- वैकल्पिक- पुस्तकालय –

0

यदि आप वेब 2py (संस्करण 1.46 या बाद वाले) सत्र का उपयोग GAE पर डिफ़ॉल्ट रूप से करते हैं। यह scaffoling मॉडल के शीर्ष पर web2py कोड की निम्न तीन पंक्तियों के द्वारा प्राप्त किया:

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

यहां एक नमूना कार्रवाई है कि मायने रखता है:

def index(): 
    session.c=session.c+1 if session.c else 1 
    return dict(counter=session.c) 
5

अद्यतन - 21 मार्च 2011

इस उत्तर के समय ऐप-इंजन-पैच और geutilitiesबंद कर दिया गया है जीई-सत्र से।

संबंधित मुद्दे