Puis-je filtrer les messages que je reçois d'une file de messages (MSMQ) par une propriété? (sujet a.k.a)

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

  •  09-06-2019
  •  | 
  •  

Question

Je crée un service Windows en C # qui traite les messages d'une file d'attente. Je veux donner à ops la flexibilité de partitionner le service en production en fonction des propriétés du message. Par exemple, ils devraient pouvoir dire qu’une instance traite les commandes Web du client A, les autres commandes par lot du client A, une troisième commande Web ou les commandes par lot du client B, etc.

.

Ma solution actuelle consiste à affecter des files d'attente distinctes à chaque combinaison client / source. Le processus qui place les commandes dans les files d'attente doit prendre la bonne décision. Mon service Windows peut être configuré pour extraire des messages d'une ou de plusieurs files d'attente. C'est désordonné, mais ça marche.

Était-ce utile?

La solution

Non, mais vous pouvez PEEK entrer dans la file d'attente et décider si vous souhaitez réellement utiliser le message.

Autres conseils

Utilisez GetMessageEnumerator2 () comme ceci:

MessageEnumerator en = q.GetMessageEnumerator2();

while (en.MoveNext())
{
    if (en.Current.Label == label)
    {
        string body = ((XmlDocument)en.Current.Body).OuterXml;
        en.RemoveCurrent();
        return body;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top