私は自分のプロジェクトでNServiceBusを使用し、アプリケーションがメッセージを受信するたびに、クラスのインスタンスを何度も作成します。 そして私はそれが、後で使用するために最初に読み込まれた情報のどこかに格納したいと思っています。 Handlerクラスのメモリストレージをインスタンス化できません。処理が遅すぎるためデータベースを使用できません。 私はMemoryCacheを使うと思いますが、Handerからアクセスする必要があります。 どうすればよいかを教えてください。ここでNServiceBusでMemoryCacheを使用する - 最適なアプローチは何ですか?
は私のコードです:
//this is a console app
class Program{
...
}
//this is a Handler of NServiceBus:
public class MyCommandHandler: IHandleMessages<MessageCommand>
{
public Task Handle(MessageCommand message, IMessageHandlerContext context)
{
...
return context.Publish(obj);
}
}//class
によってすべてのハンドラに注入することができるされている場合は? –
メッセージはいくつかのサービスを使用して処理され、いくつかの種類のインメモリデータベースのような追加のhavyデータが処理されます。別のメッセージを準備するために使用されます。したがって、問題は、ストレージのインスタンス化をどのように構成するかです。 HandlerのコンストラクタでObjectCacheを作成すると、すべてのメッセージに対してObjectCacheが再作成され、避けたいと思います。 –
それはどれくらい遅く、どれくらい速くなければならないのですか?あなたがこれらの質問に答えることができないなら、これは時期尚早な最適化のケースでしょう。 –