我可以通过某些属性过滤从消息队列 (MSMQ) 接收的消息吗?(又名话题)

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

  •  09-06-2019
  •  | 
  •  

我正在用 C# 创建一个 Windows 服务来处理来自队列的消息。我想为操作人员提供根据消息属性在生产中划分服务的灵活性。例如,他们应该能够说一个实例处理来自客户 A 的网络订单,另一个实例处理来自客户 A 的批量订单,第三个实例处理来自客户 B 的网络订单或批量订单,等等。

我当前的解决方案是为每个客户/源组合分配单独的队列。将订单放入队列的过程必须做出正确的决定。我的 Windows 服务可以配置为从一个或多个队列中提取消息。虽然很乱,但是很有效。

有帮助吗?

解决方案

不,但你可以 窥视 进入队列并决定是否确实要使用该消息。

其他提示

使用 获取消息枚举器2() 像这样:

MessageEnumerator en = q.GetMessageEnumerator2();

while (en.MoveNext())
{
    if (en.Current.Label == label)
    {
        string body = ((XmlDocument)en.Current.Body).OuterXml;
        en.RemoveCurrent();
        return body;
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top