Случайная 'Ошибка службы в memcache' при доступе к БД в приложении GAE - PullRequest
0 голосов
/ 07 июня 2019

Мое приложение - это приложение Java, работающее в стандартной среде GAE. Внезапно он заявил, что выдает ошибку, связанную с Memcache ( Ошибка службы в memcache ) при каждом обращении к Google DataStore. Это временно исчезает, когда я повторно развертываю новую версию, но возвращается через несколько часов. Используемая среда выполнения Java - 8, а Google SDK - 1.9.71.

Я пытался найти решение на всех форумах, и самое близкое, что я нашел, было Ошибка службы в memcache с Java Google App Engine Standard в случайные периоды времени . Однако, краткое изложение предлагаемого решения:

  1. Ошибка - это просто информация / предупреждение , и если кэш пропущен, код попадет в хранилище данных и выберет значение. Но дело обстоит не так, это фактически не позволяет некоторое планирование рабочих мест.
  2. Старая версия из Objectify может вызывать ошибку, но я использую 4.1.3, которую рекомендуется использовать - версии 3.x и 4.0 приводили к ошибкам для некоторых пользователей
  3. Не используйте Memcache и используйте DataStore напрямую. Я не уверен, насколько практичным / трудоемким является изменение кода стабильного приложения здесь, на уровне БД.

Отслеживание стека:

com.google.appengine.api.memcache.LogAndContinueErrorHandler handleServiceError: Service error in memcache (LogAndContinueErrorHandler.java:52)
com.google.appengine.api.memcache.MemcacheServiceException: Memcache getIdentifiables: exception getting multiple keys
                at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:80)
                at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:64)
                at com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.absorbParentException(MemcacheServiceApiHelper.java:129)
                at com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:56)
                at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:95)
                at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:28)
                at com.google.appengine.api.memcache.MemcacheServiceImpl.getIdentifiables(MemcacheServiceImpl.java:61)
                at com.googlecode.objectify.cache.KeyMemcacheService.getIdentifiables(KeyMemcacheService.java:75)
                at com.googlecode.objectify.cache.EntityMemcache.getAll(EntityMemcache.java:222)
                at com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:253)
                at com.googlecode.objectify.impl.LoadEngine.fetch(LoadEngine.java:203)
                at com.googlecode.objectify.impl.Round.fetchPending(Round.java:130)
                at com.googlecode.objectify.impl.Round.execute(Round.java:107)
                at com.googlecode.objectify.impl.LoadEngine.execute(LoadEngine.java:94)
                at com.googlecode.objectify.impl.Round$1.nowUncached(Round.java:72)
                at com.googlecode.objectify.util.ResultCache.now(ResultCache.java:30)
                at com.googlecode.objectify.LoadResult.now(LoadResult.java:25)
                at MyPackage.impl.ObjectifyGenericDaoImpl.get(ObjectifyGenericDaoImpl.java:76)
                at MyPackage.Method2(ScheduleServiceImpl.java:74)
                at MyPackage.Method1(ScheduleController.java:84)
                at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...