使objectify抑制memcache异常

时间:2012-02-13 07:58:40

标签: java google-app-engine objectify

我在我的实体上使用了objectify的@Cached注释。显然,这意味着每当我对我的实体执行PUT时,它也会将其写入memcache。然而,最近,我已经看到memcache关闭了appengine,因此objectify无法写入memcache的权利(写入数据存储区很好)。

然而,在这种失败中,客观化抛出了memcache异常 - 具体来说:com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:

有没有办法让客体化不抛出这些异常?它们相对无害,我不想在任何地方添加尝试/捕获。

1 个答案:

答案 0 :(得分:5)

这实际上是MemcacheService实现的一个已知问题。默认情况下,它应该使用LogAndContinueErrorHandler,它只能记录错误,然后无害地继续。

不幸的是,当在Memcache服务中实现异步API时,他们错误地打破了错误处理程序的使用 - GAE问题跟踪器here中存在一个未解决的问题。

因此,这为您提供了两个选项 - 编辑Objectify的源代码,并在它们到达之前捕获/忽略所有异常,或者等待修复GAE SDK中的基础MemcacheService实现。