我試圖取消存儲在Google App Engine內存緩存中的網頁塊。首先我得到的大塊,並將它們作爲字典與密鑰閱讀醃製數據時發生EOF錯誤
def get_by_key_name(key_name):
result = memcache.get_multi(['%s.%s' % (key_name, i) for i in xrange(32)])
serialized = ''
for k, v in sorted(result.items()):
if v is not None:
serialized = serialized.join(v)
else:
return None
return pickle.loads(serialized) #Line that fails
由於某種原因,它引發EOFError。最初醃製數據的代碼是:
serialized = pickle.dumps(content, 2)
values = {}
for i in xrange(0, len(serialized), chunksize):
values['%s.%s' % (key_name, i//CHUNKSIZE) ] = serialized[i:i+chunksize]
有人知道爲什麼嗎?順便說一下,CHUNKSIZE是950000字節。我試圖將reddit的首頁加載到memcache上,所以我認爲它不會超過這個限制。
在你的酸洗代碼,其中的保證你會得到一個'$ {} KEY_NAME最終.31'?您的加載代碼假定它必須在那裏。如果你說你失敗的地方失敗了,我在想你有沒有向我們展示的代碼。 – 2014-09-02 03:01:59