July 31, 2010
Markdown Wiki (3) Memcache
Memcache
今回勉強がてらにやってみたことの最後は Memcache。
デモサイト(注: 今は削除済み)では、常に右側のメニューにページ一覧が出ているので、そのリストを取得する時に cache を利用。以下、コードの抜粋。
from django.utils import simplejson
from google.appengine.ext import db
from google.appengine.api import memcache
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class PageList(webapp.RequestHandler):
def get(self):
permission = Permission()
data = []
if permission.get():
pagelist = memcache.get("pagelist")
if pagelist is not None:
data = pagelist
else:
query = WikiPage.all()
query.order("title")
for record in query:
data.append({"keyname":record.key().name(), "title": record.title })
memcache.add("pagelist", data, 3600)
self.response.headers[''Content-Type''] = ''text/plain''
self.response.out.write(simplejson.dumps(data))
呼び出す側の JavaScript は、単に GET してるだけ。
var Connect = YAHOO.util.Connect;
var oCallback = {
success: _create
};
Connect.asyncRequest("GET", "/wiki/list", oCallback);