我们遇到重复的Memcache错误。我看到一个“ LogAndContinueErrorHandler”,因此请求不会失败,但需要花费大量时间才能完成。
是否有任何方法可以强制内存缓存的最大响应时间(大约50毫秒?)。
com.google.appengine.api.memcache.LogAndContinueErrorHandler
handleServiceError:内存缓存中的服务错误
com.google.appengine.api.memcache.MemcacheServiceException:Memcache
getIdentifiables:在获取多个键的异常
com.google.appengine.api.memcache.MemcacheServiceApiHelper $ RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:76)
在
com.google.appengine.api.memcache.MemcacheServiceApiHelper $ 1.absorbParentException(MemcacheServiceApiHelper.java:120)
在
com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:53)
在
com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:92)
在
com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:28)
在
com.google.appengine.api.memcache.MemcacheServiceImpl.getIdentifiables(MemcacheServiceImpl.java:61)
在
com.googlecode.objectify.cache.EntityMemcache.getAll(EntityMemcache.java:215)
在
com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:253)
在
com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:216)
在
com.googlecode.objectify.cache.CachingDatastoreService.get(CachingDatastoreService.java:137)
在
siena.gae.GaePersistenceManager.get(GaePersistenceManager.java:2146)
在siena.core.batch.BaseBatch.get(BaseBatch.java:60)
最佳答案
在Python中,有一种简单的方法可以通过设置deadline
方法的create_rpc
参数来实现。
对于Java而言,它不是那么简单,因为MemcacheService不允许您设置ApiConfig
。
此article向您展示如何为API软件包安装API挂钩。
之后,您应该能够通过设置com.google.apphosting.api.ApiProxy.api_deadline_key
环境变量来覆盖当前API调用的截止日期,就像SDK在ApiProxy.java中所做的那样
触发RPC调用后,请不要忘记将其恢复为以前的值。