Puedo filtrar los mensajes que recibo de message queue (MSMQ) por alguna propiedad?(un.k.una.tema)

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy creando un Servicio de Windows en C# que procesa los mensajes de una cola.Quiero darle a la ops la flexibilidad de la partición de los servicio de la producción de acuerdo a las propiedades del mensaje.Por ejemplo, deben ser capaces de decir que una instancia de los procesos de pedidos web de Cliente, otro de los lotes de pedidos de Cliente, un tercio de la web o de los lotes de pedidos de Cliente B, y así sucesivamente.

Mi solución actual es la asignación de colas independientes para cada cliente\fuente de combinación.El proceso que pone a las órdenes en las colas tiene que tomar la decisión correcta.Mi Servicio de Windows se puede configurar para que tire de los mensajes de una o más colas.Es complicado, pero funciona.

¿Fue útil?

Solución

No, pero puede PEEK en la cola y decidir si realmente quiere consumir el mensaje.

Otros consejos

Uso GetMessageEnumerator2() como este:

MessageEnumerator en = q.GetMessageEnumerator2();

while (en.MoveNext())
{
    if (en.Current.Label == label)
    {
        string body = ((XmlDocument)en.Current.Body).OuterXml;
        en.RemoveCurrent();
        return body;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top