問題タブ [objectcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - データのキャッシュ.Net4.0(Asp.NET)
誰かが私に「CacheSpecificEviction
」とは何か、そしてそれを避ける方法を説明できますか?
私はこれをで取得していCacheEntryRemovedArguments.RemovedReason
ます。
android - Androidで一般的にキャッシュされたオブジェクトを特定のオブジェクトに変換するにはどうすればよいですか
オブジェクトをメモリに保存できるオブジェクト キャッシング クラスがありますが、後で取得しようとすると問題が発生します。一般的なオブジェクトを出力し、それを反対側の定義済みオブジェクトに配置するにはどうすればよいですか。クラスはこちら
アクティビティからオブジェクト クラスを開始し、保存して、そのように取得します。
Object oi の代わりに Session オブジェクトである必要がありますが、それは getObject メソッドの戻り値の型がそれを返す必要があることを意味します。オブジェクトを変換できませんか
c# - .netWindowsアプリケーションのObjectCache
ObjectCacheクラスは.NetFramework3.5に含まれていますか?
そうでない場合、オブジェクトをキャッシュに保存するための代替手段はありますか(asp.netではなくWindowsアプリケーションで)?
また、ObjectCacheクラスの使用方法を示すオンラインリソースやコードスニペットを持っている人はいますか?
c# - ObjectCache は、一貫して設定した後、すぐにアイテムを格納しません。
すべて - 新しい ObjectCache オブジェクトを使用してサーバー側のキャッシュを作成しようとしています。何らかの理由で、以下は例外をスローしています...
_cache は、サービス層で次のようにインスタンス化されます...
この例外は、初回を除き、キャッシュが設定されるたびに発生します。例外は、コードに示されているものです...「場所をキャッシュに追加しませんでした。」
---メモを編集します。ObjectCache は静的でしたが、MemoryCache.Default は静的であるため、静的である必要はありません。
.net - System.Runtime.Caching は、デバッガーが接続されているときにキャッシュを「忘れる」
妥当なパフォーマンスを達成するために、大規模なビジネス オブジェクト コレクションの永続性を必要とする一連のアプリケーション コンポーネントがあります。これは基本的に、データベースから読み取られ、後で再利用するためにオブジェクトにハイドレートされるデータです。
このオブジェクト コレクションは元々 .net 3.5 で実装されていたので、ASP.Net ランタイムによってロードされたときにこの永続性を実現するために HttpRuntime.Cache が使用され、win フォーム クライアントによってロードされた場合はエンタープライズ ライブラリ キャッシュ ブロックが使用されました。 .
現在、.net 4.0 では、これらの要求に System.Runtime.Caching を使用できます。キャッシュされたアイテムの取得のために、次のパターンが実装されました。
これは機能しているように見えますが、デバッガー (vs2010) が接続されていない場合に限ります。
デバッガーをアタッチすると、上記のキャッシュ存在チェックは常に何も返しません。
これらは、MSDN のキャッシュを使用する方法のかなりわかりやすい例です。私が見逃しているものはありますか、それともこれは本当に予期しない動作ですか?
更新: コンポーネントが ASP.net でホストされている場合に、これが発生していることがわかります。DLL をビルドし、それらをサイトにコピーし、いくつかのステップを実行して問題ありません。デバッガーをアタッチしてステップを再度実行するとすぐに、この動作が表示されます。
更新 2 : ここでよくあることですが、質問を投稿してからしばらくすると、デバッガーの出力ウィンドウからもう少し詳細なエラーが表示されました。このエラーの詳細から、このMS Connect の記事にたどり着きました。リモーティング (私) を使用して ASP.NET でホストされているアプリを呼び出すと、MemoryCache.Default は管理タイマー (キャッシュのクリーンアップなど) をスレッド コンテキストに結び付けているようです。スレッド コンテキストが使用できなくなると、コールバックは失敗し、MemoryCache.Default は他のすべての試行で動作を停止したように見えます。
ExecutionContext.SuppressFlow() を追加すると (以下の作り直された例に見られるように)、このアタッチメントが停止するようです。
私はこれを昨日入れましたが、それ以来桃色です。
c# - .NET 4 ObjectCache - 「キャッシュ期限切れ」イベントにフックできますか?
次のように単純なオブジェクトがキャッシュされています。
_myCache
として宣言されている場所ObjectCache
(ただし、DI as を介して注入されているMemoryCache.Default
)someObj
は、追加しているオブジェクトでpolicy
あり、CacheItemPolicy
.
私がCacheItemPolicy
このようなものを持っている場合:
つまり、1 時間で有効期限が切れます。涼しい。
しかし、何が起こるかというと、1 時間後に不運な最初のユーザーがヒットを待たなければならないということです。
「期限切れの」イベント/デリゲートにフックして、キャッシュを手動で更新する方法はありますか?
の言及がありCacheEntryChangeMonitor
ますが、私の例でそれを利用する方法について意味のあるドコ/例が見つかりません。
PS。手動で使用CacheItemPriority.NotRemovable
して期限切れにすることができることはわかっていますが、キャッシュされたデータが少し複雑すぎるため、現在の例ではそれを行うことができません (たとえば、コード内の 10 の異なる場所で「無効化」する必要があります)。
何か案は?
performance - System..Runtime.CachingのObjectCacheを使用することによるサイトパフォーマンスへの影響
ASP.NETMVC3にあるオンラインショッピングカートサイトで作業しています。一部の製品をキャッシュするために、ポリシーAbsoluteExpirationでObjectCacheを使用しています。
それはどのように機能しますか?キャッシュアイテムを期限切れにするために、1つのタイプのカウンター/タイマーまたは何かを開始していますか?
CPUに影響はありますか?
jpa - Eclipselink共有キャッシュと@Transientフィールド
エンティティフィールドで@Transientアノテーションを使用しています。一時的なフィールド値のキャッシュを無効にすると、キャッシュから取得されたすべてのコピーにデフォルト値が設定されます。これで、1人のユーザーが一時的な値を変更すると、他のユーザーはそれを見ることができます(キャッシュから同じクラスを取得したとき)
asp.net-mvc-3 - オブジェクト キャッシングによってメモリに保存された一部のデータが欠落している
ASP.NET MVC3 を使用しています。メモリ内のオブジェクト キャッシュを使用して一部のデータをキャッシュしました。場合によっては、一部のキャッシュ データをオプトアウトしました。例えば。
整数の配列を保存しました。
int[] i;
i[0]=0;
i[1]=1;
i[2]=2;
i[3]=3;
i[4]=4;
i[5]=5;
およびキャッシュされた配列 i;
場合によっては、配列を取得すると、3 つの要素のみが表示されます。最初の 2 つの要素がオプトアウトされ、その後、IIS からアプリケーションを再起動するか、remove メソッドを使用してキャッシュから削除するまで、最初の 2 つの要素は取得されません。
何が悪いのかわかりません。その理由は何ですか?
c# - WCFサービスのObjectCacheまたはローカルフィールド?
ある種のキャッシュを実装したいサービスがありますが、.NET 4のObjectCacheを使用するか、サービスにプライベートフィールドを設定して、しばらくすると更新されるかがわかりません。
状況は次のとおりです。サービスは、大量のデータを返すために使用されます。現在、サービスへのすべてのリクエストでデータのデータベースにアクセスしています。このデータは、1日1回深夜にのみ更新されます。このデータをサービスにキャッシュし、データベースの更新後(たとえば午前12時30分頃)に毎晩更新したいと思います。
これまでは、ローカルフィールドにデータを入力し、常に実行される「モニタースレッド」を作成し、指定された時間が経過すると、それらのフィールドにデータを再入力していました。私が見た1つの欠点は、サービスクラスにストレージ用の追加のコードが含まれていることでした。
ObjectCacheに切り替えると、有効期限が切れたときに自動削除されるという利点があります。私が考えていたのは、CacheEntryRemovedCallbackデリゲートにコールバックメソッドを割り当てることでした。それが呼び出されたら、将来のある時点でデータを再キャッシュします(データベースが更新されてから約30分)。
私の質問は、WCFサービスの場合、データをキャッシュするためのより望ましいオプションは何ですか?