Memcache delete: ключ удаления неизвестного исключения - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь определить, возможно ли выяснить причину исключения, которое мы иногда получаем при использовании Memcache Google App Engine.

В документации говорится, что если ключ не существует, он возвращает false, поэтому я считаю, что ошибка указывает на другую проблему.

Это трассировка стека ошибки, которую мы получаем:

com.google.appengine.api.memcache.LogAndContinueErrorHandler handleServiceError: Service error in memcache (LogAndContinueErrorHandler.java:49)
com.google.appengine.api.memcache.MemcacheServiceException: Memcache delete: Unknown exception deleting key: ahBzfmlkZXh4LXNlcnZpY2Vzch0LEgdQYXRpZW50GICA6ODn6-ELDAsSA0pvYhgBDA
    at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:69)
    at com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.absorbParentException(MemcacheServiceApiHelper.java:111)
    at com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:52)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:91)
    at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:26)
    at com.google.appengine.api.memcache.MemcacheServiceImpl.delete(MemcacheServiceImpl.java:125)

Вот соответствующий код:

boolean putValue = memcacheService.put(syncKey, syncKey, Expiration.byDeltaMillis(60000), MemcacheService.SetPolicy.ADD_ONLY_IF_NOT_PRESENT);

memcacheService.delete(syncKey, 100L);

Более поздние запросы не могут поставить тот же ключ, указывающий, что объект все еще существует. Учитывая, что я указываю 60-секундный срок действия, я ожидаю, что он будет доступен после этого времени, но это не так. Прямо сейчас, единственный способ исправить это - очистить весь Memcache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...