与几个服务相同的消息

时间:2017-10-14 03:45:27

标签: msmq

我有一个MSMQ队列,由五个Windows服务监听。为此,我使用了BeginPeek和PeekCompleted事件。我的问题是在五个服务中,只有一个服务是消息的正确接收者。这四个只读了消息,但没有执行任何操作。这只能在我们读取MQ消息时识别。 现在,我在我的服务中添加了一个代码来检查,如果条件匹配并且正确的服务正在处理消息,那么我使用Receive来从MSMQ出列消息。这是个好主意吗?

其次,如果消息不满足条件并且所有五个服务只是偷看它但没有收到,则消息仍然在队列中。我明白。但是相同的消息正在被无限次处理,因为消息从未被删除。

 set hive.enforce.bucketing = true;  -- (Note: Not needed in Hive 2.x onward)

感谢您的帮助。 谢谢, Fayaz

1 个答案:

答案 0 :(得分:0)

将消息设置为在设置(短)时间段后过期。然后他们将移动到死信队列,在那里你可以有另一个服务等待到达。然后,该服务可以在消息到达时立即发出警报。