【问题标题】:Make objectify suppress memcache exceptions使 objectify 抑制 memcache 异常
【发布时间】:2012-03-04 15:46:56
【问题描述】:

我在我的实体上使用 objectify 的 @Cached 注释。显然,这意味着每当我对我的实体执行 PUT 操作时,它也会将其写入 memcache。但是,最近,我看到 appengine 上的 memcache 出现故障,因此 objectify 无法将实体写入 memcache(写入数据存储正常)。

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

有没有办法让objectify不抛出这些异常?它们相对无害,我不想到处添加 try/catch。

【问题讨论】:

    标签: java google-app-engine objectify


    【解决方案1】:

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

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

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

    【讨论】:

    • 所以这在 1.6.2 中没有修复?
    • 这个问题在 1.6.2 中仍然存在,尽管他们已经开始修复它。希望它将进入 1.6.3/1.7,无论他们决定制作哪个版本。
    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2011-12-12
    • 2011-04-19
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多