2012-02-13 26 views
3

我在我的實體上使用objectify的@Cached註釋。很顯然,這意味着只要我在我的實體上執行PUT,它也會將它寫入memcache。然而,最近我看到memcache在appengine上下了功夫,因此物化無法將內容寫入memcache(正常寫入數據存儲區)。使objecitfy禁止memcache例外

然而,在這種故障,物化拋出的memcache例外 - 特別是:com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:

有沒有辦法讓物化到不會拋出這些異常?它們是相對無害的,我不想在任何地方添加嘗試/捕獲......

回答

5

這實際上是MemcacheService實現中的一個已知問題。默認情況下,它應該使用LogAndContinueErrorHandler,它只記錄錯誤,然後繼續無害。

不幸的是,當異步API在Memcache服務中實現時,他們錯誤地違反了錯誤處理程序的使用 - GAE問題跟蹤程序here中存在一個未解決的問題,您可以在該程序中明星。

因此,您有兩個選擇 - 編輯Objectify的源代碼,並在它們到達您之前捕獲/忽略所有異常,或等待修復GAE SDK中的基礎MemcacheService實現。

+0

所以這不是固定在1.6.2? – aloo 2012-02-13 08:59:17

+0

這個問題仍然存在於1.6.2中,儘管他們已經開始修復它。希望它會達到1.6.3/1.7,無論他們決定發佈哪個版本。 – Simon 2012-02-13 10:02:33

+0

感謝您的支持! – aloo 2012-02-13 11:15:41