3

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

然而,在这个失败中,objectify 抛出了 memcache 异常——特别是:com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:

有没有办法让对象化不抛出这些异常?它们相对无害,我不想到处添加尝试/捕获。

4

1 回答 1

5

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

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

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

于 2012-02-13T08:17:15.570 回答