class MainHandler(BaseHandler.Handler):
def get(self):
user = users.get_current_user() or "unknown"
posts = memcache.get('posts_%s' % user.user_id())
if not posts:
q = db.Query(P.Post)
q.filter('author =', users.get_current_user()).order("-date")
posts=q.fetch(5)
memcache.set(key='posts_%s:'%user.user_id(),value=posts)
#q=P.Post.all().filter('user =',users.get_current_user())
self.render('index.html', user=user, posts=posts)
def post(self):
user = users.get_current_user() or "unknown"
author = users.get_current_user()
title = self.request.get('title')
content = self.request.get('content')
p = P.Post(author=author, title=title, content=content)
p.put()
res = memcache.get('posts_%s'%users.get_current_user().user_id())
if res:
res+=p
if len(res)>5:
res=res[1:]
else:
res=[p]
memcache.replace("posts_%s"%user.user_id(),value=res)
self.redirect('/')
Когда браузер перенаправляет на '/', последний добавленный элемент отсутствует в списке (он добавляется только после перезагрузки). Это происходит только тогда, когда я на сервере разработки (на GAE он работает нормально), и мне интересно, может ли это случиться в GAE и в чем проблема с этим кодом.Memcached не обновляется по времени
Любые предложения будут высоко оценены.
UPD: ТНХ, я сделал то же ключи, но проблема по-прежнему остается
Я установил ключи, но мне все равно нужно перезагрузить страницу, чтобы увидеть новую запись. Есть ли вероятность, что memcache обновляется слишком долго, чтобы увидеть новую запись после первого перенаправления? –
Ключи в обновленном коде все еще разные. – Greg