私はその後、...ASP.Netキャッシュ
は、「製品情報」をキャッシュすることが可能になるまで 何も内容的に変化しない毎朝午前3時、サードパーティからのダウンロードデータのアプリケーションを持っていますそれまでページ? これは私がglobal.asaxで設定すべきものですか?
私はその後、...ASP.Netキャッシュ
は、「製品情報」をキャッシュすることが可能になるまで 何も内容的に変化しない毎朝午前3時、サードパーティからのダウンロードデータのアプリケーションを持っていますそれまでページ? これは私がglobal.asaxで設定すべきものですか?
はい、これまでキャッシュすることができます。これを行うには多くの方法があります。
データを取得するためにサーバーサイド呼び出しがある場合は、最初に取得したときにこのデータをキャッシュに追加し、翌日の午前3時に有効期限を設定します。次に、各ページ・コールでこのデータ・オブジェクトのキャッシュをチェックし、ヌルを戻す場合はデータのフェッチをもう一度開始します。
ページ出力のキャッシュ機能も使用できますが、詳細な制御はできません。このような
何か:
if (HttpContext.Current.Cache["MyData"] != null)
return HttpContext.Current.Cache["MyData"] as DataObjectClass
//Get data into dataobject
HttpContext.Current.Cache.Add(
"MyData",
DataObject,
DateTime (tomorrow 3am), // psuedo
null,
TimeSpan.Zero,
System.Web.Caching.CacheItemPriority.Normal,
null);
return DataObject;
あなたは、そのページ自体にそれを設定することができます。そのページのコードの後ろに:
Response.Cache.SetExpires("put tomorrow's date @ 3AM here");
Response.Cache.SetCacheability(HttpCacheability.Public);
別のオプションは、System.Web.Caching.Cacheクラスを使用することです。データを読み込むたびに、ここにキャッシュして、必要に応じて取得することができます。このクラスでは、TimeSpanによる有効期限が設定されていますが、毎日特定の時間にデータをダウンロードするので、実際には問題はありません。
私は24時間ごとに第三者のデータを保持します。キャッシュは、そのデータが何であるかによって異なります。それ以上の処理が必要なファイルですか?それを処理し、メモリにキャッシュします。そして、フェイルオーバーは次のようになります:メモリ内キャッシュ、一時的な一時的な場所、サードパーティの場所。
doh!私は遅いタイパーであることが嫌いです:(これは私が何をするつもりだった:) –