Wir haben einen Broker, der eine Menge Nachrichten empfängt, und wir wollen einen Windows-Dienst verwenden, um diese Nachrichten zu konsumieren.Drosselung der Verarbeitung von ActiveMQ mit C#
Der Windows-Dienst enthält eine Aufgabe zum Empfangen dieser Nachrichten und etwa 50-70 Aufgaben zum Behandeln der Nachrichten. Die Anzahl der konsumierenden Aufgaben muss begrenzt sein, da wir Einschränkungen von Drittanbieter-Elementen haben. Aber wir werden mehrere Windows-Service-Prozesse für die Skalierung ausführen.
Der ActiveMQ .NET-Anbieter bietet nur ein Ereignis für neue Nachrichten an.
Was wäre der beste Weg in diesem Szenario für eine Übergabe der Nachrichten von Producer
zu Consumer
? Wenn eine neue Nachricht von ActiveMQ empfangen wird, sollte die Producer
warten, bis eine Consumer
bereit für die Behandlung einer neuen Nachricht ist.
Sollen wir eine Art LimitedQueue schreiben oder ist in TPL etwas eingebaut?