我在我的实体上使用 objectify 的 @Cached
注释。显然,这意味着每当我对我的实体执行 PUT 时,它也会将其写入内存缓存。然而,最近,我看到 memcache 在 appengine 上出现故障,结果 objectify 无法将实体写入 memcache(写入数据存储正常)。
然而,在这次失败中,objectify 抛出内存缓存异常 - 特别是:com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:
有没有办法让 objectify 不抛出这些异常?它们相对无害,我不想在任何地方添加 try/catches。
最佳答案
这实际上是 MemcacheService 实现的一个已知问题。默认情况下,它应该使用 LogAndContinueErrorHandler ,它只应该记录错误,然后无害地继续。
不幸的是,当在 Memcache 服务中实现异步 API 时,他们错误地破坏了错误处理程序的使用——GAE 问题跟踪器中有一个 Unresolved 问题 here您可以加注星标。
因此,这给您留下了两个选择 - 编辑 Objectify 的源代码,并在所有异常到达您之前捕获/忽略所有异常,或者等待修复 GAE SDK 中的底层 MemcacheService 实现。
关于java - 使对象化抑制内存缓存异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9257178/