What does your model look like?

data.image[0].image looks like it might be looking up a reference
property; you probably want to cache the image, not an entity that
references it.

On Jul 1, 5:53 am, Albert <[email protected]> wrote:
> Hi!
>
> I have a simple image-server.py with the following code:
>
> import cgi
> import logging
>
> from google.appengine.ext import db
> from google.appengine.ext import webapp
> from google.appengine.ext.webapp.util import run_wsgi_app
> from google.appengine.api import memcache
>
> class Image(webapp.RequestHandler):
>   def get(self):
>     if self.request.get("key") != "":
>       key = self.request.get("key")
>       data = memcache.get(key)
>       if data is not None:
>         if data.image:
>           self.response.headers['Content-Type'] = "image/
> png"
>           #self.response.headers['Cache-Control'] = "public,max-
> age=31104000"
>           self.response.out.write(data.image[0].image)
>           logging.debug("Served from memcache")
>         else:
>           self.response.out.write("No image")
>
>       else:
>         data = db.get(key)
>         if data.image:
>           self.response.headers['Content-Type'] = "image/png"
>           #self.response.headers['Cache-Control'] = "public,max-
> age=31104000"
>           self.response.out.write(data.image[0].image)
>           logging.debug("Served from datastore")
>         else:
>           self.response.out.write("No image")
>
>         if not memcache.add(key, data):
>           logging.debug("Memcached failed!!!!!!!")
>
>     else:
>       self.response.out.write("No image")
>
> application = webapp.WSGIApplication([
>   ('/download', Image)
> ], debug=True)
>
> def main():
>   run_wsgi_app(application)
>
> if __name__ == '__main__':
>   main()
>
> I did a test and served 1000 images after they have all been cached in
> memcache.
>
> The Admin Logs show that all requests are "Served from memcache".
> However, when I check the Quota Details in the Admin, I noticed that
> for every request, not only the quota details for Memcache API Calls,
> but Datastore API Calls are also incremented.
>
> Memcache quota displayed 1000 while datastore quota displayed exactly
> 2000 API calls.
>
> And the ratio is for every 1 memcache API call, 2 datastore API Calls
> are called.
>
> I have no idea, why this is so. Please, someone enlighten me.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to