私たちのサイトではRavenDBを使用しています。サイトは大量の負荷を処理できるように、すべてのデータをメモリにロードします(それほど多くない)。データをバックグラウンドスレッドにロードします。バックグラウンドスレッドは、新しいデータが存在するかどうかを定期的にDB(RavenDB + sqlserver)でチェックし、そうであればそのデータをメモリにロードします。ravendb長期セッション
私たちはセッションごとにRavenDBに30回のクエリの迷惑なリクエスト制限を回避するために多くのことを試みました。 Ravenにはチェック/ロードループの繰り返しが終わった後でセッションを「リセット」するメカニズムがないため、Structuremapに指示する方法がないので実際にはは新しいセッションを望んでいます私たちの前には同じスレッドが残っています。
最終的には私たちのリポジトリは構造マップがロード/フェッチループでリセットできるRavenSessionProxyを使用するように再構築されました(リセット時に新しいドキュメントセッションを手作業でインスタンス化します)。
これは本当に唯一の方法ですか?レイヴンの中には、「こんにちは、私はあなたと一緒にやっています。あなたが呼んだ次回は新鮮で準備ができています」と言ったり、Structure Map「Hey、SM!私はIDocumentSessionを求めて、新しいものを持ってきて、私はこの古いものに疲れています」
MaxNumberOfRequestsは問題を延期するだけです。重要なことは、セッションを永遠に持続させ、定期的にリセットすることです。 *すべてではありません*ユースケースは、単一の要求に対して30回のクエリを実行してから終了します。私のバックグラウンドは*永遠に生きることになっています – AndreasKnudsen