Hello friends,
I'm getting a strange task queue/datastore/memcache behavior.
I have something like the following code:
report = memcache.get(id)
if not report:
try:
if not deferred.defer(self.addindex, id=id):
logging.error('cannot store task for report index')
report = False
else:
memcache.set(id, 1)
except:
logging.error('cannot store task for report index')
report=False
def addindex(id)
reportindex=Foo(id=id)
try:
reportindex.put()
except Exception, e:
logging.error('can not put report index')
When I can not put 'reportindex' I'm getting the logging.error as expected.
But some times, I don't get the error, and don't have related id into the
DS.
To prove that was an error, I wrote to run every hour something like:
for x in range(startid, lastid):
if memcache.get('%s' % x) and not Foo.all().filter('id', x).fetch(1):
logging.error('there is no register for id %s' %x)
a=Foo(id=x)
a.put()
The problem is that I need Foo() to "index" memcache.
Is this an expected behavior ?
Should I trust on deferred.defer() ?
Thanks a lot
Felippe Bueno
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.