> > memcache.set() does not set if id already present.

Huh?  I don't see that in the documentation.  Why do you think that it
is true?

memcache.set is described as "Sets a key's value, regardless of
previous contents in cache."
memcache.add is described as "Sets a key's value, if and only if the
item is not already in memcache."

http://code.google.com/appengine/docs/python/memcache/functions.html

On Feb 7, 1:32 pm, observer247 <prem...@gmail.com> wrote:
> Thanks Eli ! The cache time was the issue.
>
> memcache.set() does not set if id already present. So I am using
> delete and add.
> I cannot be sure id is present, memcache could be deleted because of
> memory pressure from app engine, right ?
>
> On Feb 7, 10:18 am, Eli Jones <eli.jo...@gmail.com> wrote:
>
>
>
> > One minor thing I noticed.. why not use memcache.set() instead of
> > memcache.delete(), memcache.add()?
>
> > On Sun, Feb 7, 2010 at 6:22 AM, observer247 <prem...@gmail.com> wrote:
> > > This is my code:
>
> > >                ret = memcache.add(key=mykey, value=qList, time=
> > > 60*60*24*30)
> > >                logging.critical("Created cache batch %s Passed %s" %
> > > (mykey, str(ret)))
>
> > >                qList = memcache.get(mykey)
>
> > > For some reason, qList is None ! I have logged all values and qList is
> > > a non empty list. Check code below where I print a lot of info in the
> > > logs.
>
> > > Detailed code here:
>
> > > def MY_QC_MAX(): return 3
> > > def MY_QC_SIZE(): return 200
>
> > > def createBatchMyModels():
> > >        import random
> > >        for n in range(MY_QC_MAX()):
> > >                bnum = n + 1
> > >                mykey = "qkey_batch_"+str(bnum)
> > >                qQ = MyModel.all(keys_only=True).filter('approved',
> > > True)
> > >                if bnum > 1:
> > >                        qQ = qQ.filter('__key__ >', last_key)
> > >                rows = qQ.fetch(MY_QC_SIZE())
> > >                tot = len(rows)
> > >                if tot < MY_QC_SIZE():
> > >                        logging.critical("Not enough MyModels for
> > > batch %u, got %u" % (bnum, tot))
> > >                        if tot == 0:
> > >                                return
> > >                last_key = rows[tot - 1]
> > >                # create the qList
> > >                qList = list()
> > >                logging.critical("Added %u rows into key %s" % (tot,
> > > mykey))
> > >                tmpc = 0
> > >                for r in rows:
> > >                        if tmpc == 0:
> > >                                logging.critical("elem %u into key %s"
> > > % (r.id(), mykey))
> > >                                tmpc = tmpc + 1
> > >                        qList.append(r.id())
>
> > >                for elem in qList:
> > >                        logging.info("key %s elem is %u" % (mykey,
> > > elem))
> > >                memcache.delete(mykey)
> > >                ret = memcache.add(key=mykey, value=qList, time=
> > > 60*60*24*30)
> > >                logging.critical("Created cache batch %s Passed %s" %
> > > (mykey, str(ret)))
>
> > >                qList = memcache.get(mykey)
> > >                if qList is None:
> > >                        logging.critical(".. getNextMyModel: Did not
> > > find key %s" % mykey)
> > >                else:
> > >                        logging.critical(".. LEN : %u" % len(qList))
>
> > > Sample log:
> > > .....
> > > 02-07 03:15AM 05.240 key qkey_batch_1 elem is 13108
> > > C 02-07 03:15AM 05.250 Created cache batch qkey_batch_1 Passed True
> > > C 02-07 03:15AM 05.253 .. getNextQuestion: Did not find key
> > > qkey_batch_1
> > > C 02-07 03:15AM 05.339 Added 200 rows into key qkey_batch_2
> > > ...
>
> > > Can anyone pls help !
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Google App Engine" group.
> > > To post to this group, send email to google-appeng...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > google-appengine+unsubscr...@googlegroups.com<google-appengine%2Bunsubscrib
> > >  e...@googlegroups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine?hl=en.- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to