1

Windows Azure 共有キャッシュ:
次のようにするとします。

try
{
  mCache.Remove(key);
  Trace.WriteLine("removed successfully from Azure Shared Cache");
}
catch (DataCacheException e)
{
  WorkerRole.log.Info(e.ToString());
}

Trace.WriteLineコードがコマンドに到達した場合、操作は正常に完了したと言えますか? (そうしないと、 がスローされDataCacheExceptionます。

イベントCacheOperationCompletedに登録できることはわかっていますが、コードはテスト操作の成功に代わる良い方法ですか? (Put/Remove メソッド用)。

ありがとう

4

1 に答える 1

1

Removeメソッドは、指定された で識別されるアイテムが削除されたか( )、削除されていないか ( )booleanを示すフラグを返します。keytruefalse

したがって、操作結果を確認したい場合は、次のアプローチをお勧めします。

if(mCache.Remove(key))
{
    Trace.WriteLine("removed successfully from Azure Shared Cache");
}

メソッドに関する限りPut、これはもう少し複雑かもしれません。

基本的に、cache.Put(key, value)メソッドが正常に完了した場合 (例外なし)、アイテムがキャッシュに追加されたと見なすことができます。

ただし、Azure キャッシュ アイテムはキャッシュから削除できます(これは、キャッシュ サイズとアイテムの有効期限によって異なります。共有キャッシュの既定のアイテム有効期限は 48 時間です)。

したがって、「驚き」を避けるために、キャッシュの使用パターンを次のようにすることをお勧めします。

  • キーでキャッシュからアイテムを取得する
  • キャッシュがNullを返す場合、その項目を作成してキャッシュに入れます
  • アイテムに対して操作を実行する

また、補足として、共有キャッシング サービスの代わりにインロール キャッシングを使用することをお勧めします (主に、安価で機能が多いなどの理由で)。

于 2013-01-22T09:30:31.173 に答える