2012-02-13 10 views
3

私は自分のエンティティにobjectifyの@Cached注釈を使用しています。明らかに、これは私が自分のエンティティでPUTを行うたびにmemcacheに書き出すことを意味します。しかし、最近、私はmemcacheがappengine上に落ちるのを見ました。その結果、オブジェクト化はmemcacheへのentitiyを書くことに失敗しました(データストアへの書き込みは問題ありません)。 com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Set failed to set 1 keys:memcache例外を無効にするオブジェクトを作成

これらの例外をスローしないように客観取得する方法はあります:特に - しかし、この障害で

、客観化はmemcacheの例外がスローされますか?それらは比較的無害で、どこにでもtry/catchを追加したくありません。

答えて

5

これは実際にはMemcacheService実装の既知の問題です。デフォルトでは、LogAndContinueErrorHandlerを使用することになっています。このエラーは、エラーをログに記録してから無害にすることが想定されています。

残念ながら、Memcacheサービスで非同期APIが実装されたとき、誤ってエラーハンドラの使用が破られました。GAE問題追跡ツールhereに問題があります。

したがって、Objectifyのソースを編集し、到達する前にすべての例外をキャッチ/無視したり、GAE SDKの基本的なMemcacheService実装への修正を待ちます。

+0

これは1.6.2で修正されていませんか? – aloo

+0

この問題は修正されていますが、まだ1.6.2にあります。うまくいけば、それは1.6.3/1.7になるでしょう。 – Simon

+0

ヘッドアップありがとう! – aloo

関連する問題