私は永続的な接続のプールを持っています(Memcachedクライアント)。データはmemcachedサーバーにキャッシュされています。私は私がしようと、再起動後に初めてこの例外を取得memcachedサーバーの再起動後に予期しない動作が発生しました。どのように構成/整流するのですか?
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Cancelled
at net.spy.memcached.MemcachedClient$OperationFuture.get(MemcachedClient.java:1662)
at net.spy.memcached.MemcachedClient$GetFuture.get(MemcachedClient.java:1708)
at com.eos.gds.cache.CacheClient.get(CacheClient.java:49)
:memcachedサーバを再起動した後、私はプールからクライアントを使用して、キャッシュされたデータを取得しようとすると、私は以下の例外を取得mはキャッシュされたデータを取得します。私は多くの検索をしました。しかし、これの正確な理由を見つけることができません。
私はSpymemcachedがキューを維持する部分を理解しました。したがって、すべての操作はSpymemcachedによってキャンセルされます。私はまた、例外をキャッチし、将来の 'future.cancel(false)'をキャンセルするので、memcachedサーバーが起動しているときには何もキューにはありません。しかし、サーバが立ち上がった直後の操作はどうですか?永続的なクライアントが接続を失い、再度接続する必要があるため、例外が発生していますか? –
こんにちはMikewied、私はsypmemecachedが飛行中のすべての操作をキャンセルする理由を知ることができますか?接続を確立してリクエストを再試行する必要がありますか? – Xilang
操作を再度送信する場合は、接続ファクトリビルダーでOperationState.RETRYを設定できると思います。操作が失敗した場合、操作をやり直すには時間がかかりすぎるため、ユーザーは実際には気にしないかもしれないので、操作はデフォルトでキャンセルされる可能性があります。 – mikewied