Могу ли я фильтровать сообщения, которые я получаю из очереди сообщений (MSMQ), по какому-либо свойству?(он же.тема)
-
09-06-2019 - |
Вопрос
Я создаю службу Windows на C #, которая обрабатывает сообщения из очереди.Я хочу предоставить операторам гибкость при разделении службы в рабочей среде в соответствии со свойствами сообщения.Например, они должны быть в состоянии сказать, что один экземпляр обрабатывает веб-заказы от Клиента A, другой пакетные заказы от Клиента A, третий веб-или пакетные заказы от Клиента B и так далее.
Мое текущее решение заключается в назначении отдельных очередей для каждой комбинации клиент \ источник.Процесс, который ставит заказы в очередь, должен принимать правильное решение.Моя служба Windows может быть настроена на получение сообщений из одной или нескольких очередей.Это грязно, но это работает.
Решение
Нет, но ты можешь ЗАГЛЯНУТЬ встаньте в очередь и решите, действительно ли вы хотите использовать это сообщение.
Другие советы
Использование GetMessageEnumerator2() вот так:
MessageEnumerator en = q.GetMessageEnumerator2();
while (en.MoveNext())
{
if (en.Current.Label == label)
{
string body = ((XmlDocument)en.Current.Body).OuterXml;
en.RemoveCurrent();
return body;
}
}