c# - Microsoft Message Queue - 优先级标志或单独的队列?

标签 c# .net multithreading msmq

我用 C# 实现了一个系统,该系统使用 Microsoft 消息队列 (System.Messaging) 在相关进程之间进行通信。本质上,许多 Sender 服务生成要放入队列中的消息,而许多 Receiver 进程监视队列并在消息到达时抓取这些消息。

我刚刚被告知有些消息需要优先于其他消息。

消息可能会一波又一波地传入,并且可能会出现一次点击将大量消息放入队列的情况(比如一千条左右),因此在最后一条消息之前可能会有延迟得到处理。

我最初的想法是有第二个 Priority 消息队列,它也被不同线程中的每个 Receiver 进程监视。此队列中的消息会少得多,因此延迟也会减少。

然后我偶然发现了 Message.Priority 属性。

所以:

我应该使用这个优先级标志而不是实现另一个队列吗?它会成功且高效地将这些消息跳到其他消息之前吗?如果是这样,可能有什么条件和副作用?

或者我应该坚持原来的计划并为优先消息实现另一个队列?

最佳答案

我应该使用这个优先级标志而不是实现另一个队列吗?

它会成功且高效地将这些消息跳到其他消息之前吗?

如果有,可能有哪些条件和副作用? 无,MSMQ 旨在以这种方式工作

关于c# - Microsoft Message Queue - 优先级标志或单独的队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688050/

相关文章:

c# - 如何在网页上搜索一些文字?

c# - Windows 桌面搜索 - 现在从命令行强制重新索引/索引

c# - asp.net c# 中的自动完成属性

c# - .NET 如何通过套接字获取 int C-Sharp

c++ - 当 QFileDialog::getOpenFileName 窗口打开时,程序意外结束

c - 为实时时钟提供自己的线程是一个好主意吗?

c# - 无法对非静态方法进行静态引用

c# - .NET C# 中的集合操作

c# - Elasticsearch 和 .NET

java - 单作者/单读者场景的 HashMap 或 ConcurrentHashMap?