我正在用 C# 创建一个处理来自队列的消息的 Windows 服务。我想为操作人员提供根据消息属性在生产中划分服务的灵活性。例如,他们应该能够说一个实例处理来自客户 A 的 Web 订单,另一个实例处理来自客户 A 的批量订单,第三个实例处理来自客户 B 的 Web 或批量订单,等等。
我当前的解决方案是为每个客户\来源组合分配单独的队列。将订单放入队列的过程必须做出正确的决定。我的 Windows 服务可以配置为从一个或多个队列中提取消息。这很混乱,但它有效。
我正在用 C# 创建一个处理来自队列的消息的 Windows 服务。我想为操作人员提供根据消息属性在生产中划分服务的灵活性。例如,他们应该能够说一个实例处理来自客户 A 的 Web 订单,另一个实例处理来自客户 A 的批量订单,第三个实例处理来自客户 B 的 Web 或批量订单,等等。
我当前的解决方案是为每个客户\来源组合分配单独的队列。将订单放入队列的过程必须做出正确的决定。我的 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;
}
}