2012-02-13 2 views
3

Я использую аннотации objectite @Cached на моих сущностях. Очевидно, это означает, что в любое время, когда я делаю PUT на моем объекте, он также записывает его в memcache. Тем не менее, в последнее время я видел, как memcache переходит на appengine, и в результате объектизация не позволяет записать entitiy в memcache (пишет в хранилище данных).Сделать objecitfy supress memcache exceptions

В этих неудачах однако, объективировать бросает исключение - кэша памяти в частности: com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:

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

ответ

5

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

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

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

+0

так что это не определено в 1.6.2? – aloo

+0

Эта проблема все еще присутствует в 1.6.2, хотя они начали исправление. Надеюсь, что он превратится в 1.6.3/1.7, какой бы релиз они решили сделать. – Simon

+0

Спасибо за головы! – aloo