【问题标题】:ActiveMQ: Set priority for message is not workingActiveMQ:为消息设置优先级不起作用
【发布时间】:2011-12-06 11:58:20
【问题描述】:

我在通过 nms 设置消息优先级时遇到问题。消息被发送到队列一切正常,但优先级被忽略。

我使用以下代码:

message.NMSPriority = MsgPriority.High;

无论我为消息优先级设置了什么值,使用 ActiveMQ 浏览器我都可以看到优先级始终设置为 4。

我还尝试添加一些原始标题,例如:

message.Properties["priority"] = 2;
message.Properties["PRIORITY"] = 5;
message.Properties["NMSPriority"] = 7;
message.Properties["JMSPriority "] = 9;

但这并没有帮助。

我也加了属性

prioritizedMessages="true"

到 activemq.xml 文件。我可以通过 ActiveMQ 浏览器手动发送优先级消息。

那么问题出在哪里?我做错了什么?

【问题讨论】:

    标签: c# .net activemq nms


    【解决方案1】:

    消息优先级始终由发送消息的生产者设置。类上的 setter 只允许您在收到消息后更改值,并且通常仅用于单元测试或在提供程序之间转换消息。要在每条消息的基础上设置消息优先级,请查看 MessageProducer 接口中的不同发送方法。

    【讨论】:

    • 非常感谢,您的回答解决了我的问题!但有趣的是,我也可以通过 setter 类和其他东西来设置消息属性,但不能设置优先级。
    • 你可以参考 JMS API 文档这样的事情,各种 setter 被标记以指示哪些不适用于已发送的消息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2015-02-11
    • 2014-11-23
    • 2012-02-09
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多