2012-08-09 29 views
1

我們遇到重複的內存緩存錯誤。我看到一個「LogAndContinueErrorHandler」,所以請求不會失敗,但是他們需要很長時間才能滿員。 有什麼辦法來強制memcache的最大響應時間(如50ms?)。你可以調整GAE的內存緩存超時嗎?

com.google.appengine.api.memcache.LogAndContinueErrorHandler handleServiceError: Service error in memcache com.google.appengine.api.memcache.MemcacheServiceException: Memcache getIdentifiables: exception getting multiple keys at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:76) at com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.absorbParentException(MemcacheServiceApiHelper.java:120) at com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:53) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:92) 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.EntityMemcache.getAll(EntityMemcache.java:215) at com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:253) at com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:216) at com.googlecode.objectify.cache.CachingDatastoreService.get(CachingDatastoreService.java:137) at siena.gae.GaePersistenceManager.get(GaePersistenceManager.java:2146) at siena.core.batch.BaseBatch.get(BaseBatch.java:60)

回答

2

有一個簡單的方法來做到這一點在Python通過設置create_rpc方法的deadline參數。

對於Java不那麼直接,因爲MemcacheService不允許您設置ApiConfig

article向您展示瞭如何安裝API包的API鉤子。

之後,你應該能夠通過設置com.google.apphosting.api.ApiProxy.api_deadline_key環境變量,如SDK中ApiProxy.java確實給覆蓋當前API調用的最後期限

不要忘記曾經的RPC調用的是它的前值來恢復它被解僱。