我在C#中实现了一个使用Microsoft Message Queue(System.Messaging)进行相关进程之间通信的系统.实质上,许多Sender服务生成要放入队列的消息,并且许多Receiver进程会在队列到达时监视队列并抓取这些消息.
我刚刚被告知有些消息需要优先于其他消息.
消息可能会出现波动,并且有可能在一次命中(例如一千次左右)中将大量消息放入队列中,因此在最终消息处理之前可能会有延迟.
我最初的想法是拥有第二个优先级消息队列,每个接收者进程也会在另一个线程中监视该队列.此队列中的消息数量要少得多,因此延迟时间会减少.
然后我偶然发现了Message.Priority属性.
所以:
我应该使用此优先级标志而不是实现另一个队列吗?它会成功有效地跳过这些消息吗?如果是这样,那么可能存在哪些条件和副作用?
或者我应该坚持我的原始计划并实施另一个优先级消息队列?
解决方法
我应该使用此优先级标志而不是实现另一个队列吗?是.
它会成功有效地跳过这些消息吗?是.
如果是这样,那么可能存在哪些条件和副作用?没有,MSMQ旨在以这种方式工作.