Kann ich die Nachrichten filtern ich aus einer Nachrichtenwarteschlange (MSMQ) durch eine Eigenschaft erhalten? (Auch bekannt als Thema)

StackOverflow https://stackoverflow.com/questions/64204

  •  09-06-2019
  •  | 
  •  

Frage

Ich bin ein Windows-Dienst in C # erstellen, die Nachrichten aus einer Warteschlange verarbeitet. Ich mag ops die Flexibilität der Partitionierung den Service in der Produktion geben, entsprechend den Eigenschaften der Nachricht. Zum Beispiel sollten sie in der Lage sein zu sagen, dass eine Instanz Web-Aufträge von Kunden A verarbeitet, eine andere Charge-Aufträge von Kunden A, eine dritte Bahn oder Batch-Aufträge von Kunden-B, und so weiter.

Meine aktuelle Lösung ist getrennte Warteschlangen für jeden Kunden \ source Kombination zuweisen. Der Prozess, die Aufträge in die Warteschlangen versetzt hat, um die richtige Entscheidung zu treffen. Mein Windows-Dienst kann so konfiguriert werden, um Nachrichten zu ziehen aus einer oder mehreren Warteschlangen. Es ist chaotisch, aber es funktioniert.

War es hilfreich?

Lösung

Nein, aber Sie können PEEK in die Warteschlange und entscheiden, ob Sie wirklich die Meldung konsumieren wollen.

Andere Tipps

Mit GetMessageEnumerator2 () wie folgt aus:

MessageEnumerator en = q.GetMessageEnumerator2();

while (en.MoveNext())
{
    if (en.Current.Label == label)
    {
        string body = ((XmlDocument)en.Current.Body).OuterXml;
        en.RemoveCurrent();
        return body;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top