2017-01-29 7 views
1

Ich benutze NServiceBus in meinem Projekt und jedes Mal, wenn die App eine Nachricht erhält, baut sie die Instanz der Klasse immer wieder auf. Und ich möchte, dass es irgendwo anfänglich geladene Informationen für die weitere Verwendung speichert. Ich kann den Speicher in der Handler-Klasse nicht instanziieren, und ich kann die Datenbank nicht verwenden, weil sie zu langsam ist. Ich denke an die Verwendung des MemoryCache, aber ich muss Zugriff von der Hander haben. Bitte geben Sie an, was der beste Weg ist.Verwenden von MemoryCache mit NServiceBus - was ist der beste Ansatz?

Hier ist mein Code:

//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 
+0

Also, um zu verstehen, um die Nachricht zu instanziieren ist eine sehr Leistung in Betrieb? –

+0

Die Nachricht wird unter Verwendung einiger Dienste und einiger zusätzlich geladener havy-Daten wie eine Art In-Memory-Datenbank verarbeitet. Es wird verwendet, um eine weitere Nachricht vorzubereiten. Die Frage ist also, wie man die Instanziierung des Speichers organisiert. Wenn ich den ObjectCache im Konstruktor des Handlers erzeuge, wird er für jede Nachricht neu erstellt und ich möchte sie vermeiden. –

+0

Wie langsam ist es und wie schnell muss es sein? Wenn Sie diese Fragen nicht beantworten können, dann handelt es sich wahrscheinlich um eine vorzeitige Optimierung –

Antwort

Verwandte Themen