【问题标题】:Can I filter the messages I receive from a message queue (MSMQ) by some property? (a.k.a. topic)我可以通过某些属性过滤从消息队列 (MSMQ) 接收到的消息吗? (又名主题)
【发布时间】:2010-09-09 00:24:08
【问题描述】:

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

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

【问题讨论】:

    标签: msmq


    【解决方案1】:

    不,但您可以PEEK进入队列并决定是否真的要使用该消息。

    【讨论】:

      【解决方案2】:

      像这样使用 GetMessageEnumerator2()

      MessageEnumerator en = q.GetMessageEnumerator2();
      
      while (en.MoveNext())
      {
          if (en.Current.Label == label)
          {
              string body = ((XmlDocument)en.Current.Body).OuterXml;
              en.RemoveCurrent();
              return body;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-08
        • 2017-04-27
        • 2014-05-24
        • 1970-01-01
        • 2021-02-04
        • 2018-02-02
        • 2023-01-24
        相关资源
        最近更新 更多