Posso filtrar as mensagens que recebo de uma fila de mensagens (MSMQ) por alguma propriedade?(também conhecido comotema)

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Estou criando um serviço do Windows em C# que processa mensagens de uma fila.Quero dar às operações a flexibilidade de particionar o serviço em produção de acordo com as propriedades da mensagem.Por exemplo, eles devem ser capazes de dizer que uma instância processa pedidos da web do Cliente A, outra, pedidos em lote do Cliente A, uma terceira web ou pedidos em lote do Cliente B e assim por diante.

Minha solução atual é atribuir filas separadas para cada combinação cliente/fonte.O processo que coloca os pedidos nas filas precisa tomar a decisão certa.Meu serviço do Windows pode ser configurado para extrair mensagens de uma ou mais filas.É confuso, mas funciona.

Foi útil?

Solução

Não, mas você pode OLHADINHA na fila e decida se você realmente deseja consumir a mensagem.

Outras dicas

Usar GetMessageEnumerator2() assim:

MessageEnumerator en = q.GetMessageEnumerator2();

while (en.MoveNext())
{
    if (en.Current.Label == label)
    {
        string body = ((XmlDocument)en.Current.Body).OuterXml;
        en.RemoveCurrent();
        return body;
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top