Сделать objectify подавить исключения memcache - PullRequest
3 голосов
/ 13 февраля 2012

Я использую аннотации objectify @Cached для своих сущностей. Очевидно, это означает, что каждый раз, когда я делаю PUT для своей сущности, он также записывает ее в memcache. Однако недавно я видел, как memcache отключился на appengine, и в результате objectify не может записать права на memcache (запись в хранилище данных выполняется нормально).

В этом случае objectify создает исключение memcache, а именно: com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:

Есть ли способ получить объективность, чтобы НЕ выбрасывать эти исключения? Они относительно безвредны, и я не хочу везде добавлять / ловить.

1 Ответ

5 голосов
/ 13 февраля 2012

На самом деле это известная проблема с реализацией MemcacheService. По умолчанию предполагается использовать LogAndContinueErrorHandler , который только должен регистрировать ошибку и затем продолжать безвредно.

К сожалению, когда в службе Memcache был реализован асинхронный API, они по ошибке прервали использование обработчиков ошибок - в системе отслеживания проблем GAE здесь есть открытая проблема, которую можно пометить звездочкой.

Таким образом, у вас остается две опции: отредактировать источник Objectify и перехватить / игнорировать все исключения, прежде чем они попадут к вам, или дождаться исправления базовой реализации MemcacheService в GAE SDK.

...