У меня возникли проблемы со средством просмотра кэша памяти после обновления сервера приложений Python Dev до Google App Engine 1.7.6 (с Python 2.7).
Похоже, что мой memcache не обновляется или не читается. Я попытался просмотреть memcache с помощью средства просмотра memcache движка приложения, но когда я ввожу ключ memcache, я получаю сообщение об ошибке.
когда я очищаю кеш, все происходит как обычно, пока memcache не нужно будет снова читать...
Коэффициент попаданий и размер кэша памяти увеличиваются как обычно, значит, в кэше что-то есть. Также, когда я возвращаюсь к движку приложения 1.7.5, все работает нормально. Возможно, у кого-то еще была эта проблема?
Когда я ввожу ключ memcache, я получаю следующее:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 1536, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 1530, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\admin\admin_request_handler.py", line 80, in dispatch
super(AdminRequestHandler, self).dispatch()
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.1\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\admin\memcache_viewer.py", line 145, in get
values['value'], values['type'] = self._get_memcache_value_and_type(key)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\admin\memcache_viewer.py", line 74, in _get_memcache_value_and_type
except (pickle.UnpicklingError, AttributeError, EOFError, ImportError,
NameError: global name 'pickle' is not defined
Я попытался включить «импортный рассол» в свой main.py, но это было напрасно.
Я включил несколько примеров своего кода, но, надеюсь, в этом нет необходимости. Я надеюсь, что это больше связано с обновлением движка приложения, чем с моим кодом...
некоторые из моих файлов main.py:
#import pickle
from google.appengine.api import memcache
from google.appengine.ext import db
и пример функции того, как я работаю с memcache:
def mc_get(key):
a = memcache.get(key)
if a:
val = a
else:
val = None
return val
def mc_set(key, val):
memcache.set(key, val)
и если я хочу запросить пользователей в моей базе данных, я использую:
def get_users(update=False):
mc_key = 'USERS'
entries = mc_get(mc_key)
if update or entries is None:
a = User.all()
logging.error('DB---Q - Users')
entries = list(a)
memcache.set(mc_key, entries)
return entries
ОБНОВЛЕНИЕ: я добавил "import pickle" в файл memcache_viewer.py в Google\google_appengine\google\appengine\tools\devappserver2\admin\memcache_viewer.py (это ошибка??)
и теперь, когда я ввожу ключ memcache, я получаю следующую ошибку в поле ввода ключа memcache: Ошибка извлечения ПОЛЬЗОВАТЕЛЕЙ: Не удалось получить значение из кеша: нет модуля с именем main
Любая помощь будет принята с благодарностью, заранее спасибо.