java - 使对象化抑制内存缓存异常

标签 java google-app-engine objectify

我在我的实体上使用 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/

相关文章:

java - 如何安排调用方法

java - 如何创建所有位均已设置的 256 位 BigInteger

python - App Engine(python)如何跨请求管理内存(超出软私有(private)内存限制)

python - 字符串值前面的 'u' 符号是什么意思?

java - 如何分离 App Engine Eclipse 项目和 GWT Eclipse 项目?

java - 客观化 POST/LIKE/USER 关系

java - 如何计算排列中的交换次数?

java - 仅加载 Spring 框架所需的服务

google-app-engine - 在 objectify 中查询字段不为 null 的所有记录的有效方法

java - Objectify 无法保存@Embedded 字符串列表