我们遇到重复的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调用后,请不要忘记将其恢复为以前的值。

10-01 06:34
查看更多