我在activemq配置中激活了prioritydMessages,优先级工作正常,即当我发送X条消息时,其中一半优先级为0,一半优先级为9,消费者以正确的顺序接收消息。
但是,当我使用CMSPriority > 0
or等选择器调用 createConsumer() 方法时CMSPriority < 4
,没有收到任何消息。
这是相关的消费者代码:
mSession = mConnection->createSession(Session::INDIVIDUAL_ACKNOWLEDGE);
mDestination = mSession->createQueue( mDestURI );
mConsumer = mSession->createConsumer(mDestination, "CMSPriority < 4");
当我将最后一行更改为 时mConsumer = mSession->createConsumer(mDestination);
,将收到所有消息,并具有正确的优先级。
谁能解释这种行为?