你能调整GAE的memcache超时吗?

时间:2012-08-09 23:11:01

标签: java google-app-engine memcached objectify

我们遇到了重复的内存缓存错误。我看到一个“LogAndContinueErrorHandler”,因此请求不会失败但是它们需要花费大量时间才能完成。 有没有办法强制memcache的最大响应时间(像50ms?)。

  

com.google.appengine.api.memcache.LogAndContinueErrorHandler   handleServiceError:memcache中的服务错误   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)

1 个答案:

答案 0 :(得分:2)

通过设置create_rpc方法的deadline参数,可以通过简单的方法在Python中执行此操作。

对于Java来说不那么简单,因为MemcacheService不允许你设置ApiConfig

article向您展示了如何为API包安装API挂钩。

之后,您应该能够通过设置com.google.apphosting.api.ApiProxy.api_deadline_key环境变量来覆盖当前API调用的截止日期,就像SDK在ApiProxy.java中所做的那样

一旦激活RPC调用,不要忘记将其恢复为之前的值。