2011-03-08 52 views
1

此代碼:Python的負荷多個對象映射到內存緩存中使用

for num in range(1,4): 
     results = memcache.get("link_" + str(num)) 
     output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date) 
    return output.getvalue() 

這個代碼不工作:

results = memcache.get_multi(linkKeys,"link_") 
for results in results: 
    output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date) 
return output.getvalue() 

有人能使用的原因返回memcache.get_multi錯誤給我解釋一下:

Traceback (most recent call last): 
    File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__ 
    handler.get(*groups) 
    File "C:\Main.py", line 28, in get 
    values.write(self.RenderValue()) 
    File "C:\Main.py", line 57, in RenderValue 
    output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date) 
AttributeError: 'str' object has no attribute 'date' 

感謝有人幫我解決這個問題!

回答

0

memcache只能存儲pickleable對象。你能安全地醃製GqlQuery結果嗎?如果不是,則可能需要先將其轉換爲dict,然後再將其交給內存緩存。

查看pickle docs,可能還有相關的GAE文檔。

您可能還想對此進行基準測試,看看使用memcache是​​否真的有所幫助。

1

結果* s *結果* s * ??

相關問題