Broker Name localhost Version 5.16.0 ID ID:xxxxxxxxx-36082-1654522010467-0:1 Uptime 1 day 3 hours Store percent used 0 Memory percent used 0 Temp percent used 0
Out of necessity I have a single consumer of a queue (work needs to be completed serially), but I need to have some messages processed before others, i.e., in priority order. I have researched the documentation and my activmq.xml file contains: <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"> <destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" prioritizedMessages="true" useCache="false" expireMessagesPeriod="0" queuePrefetch="1"/> <policyEntry topic=">" > <!-- The constantPendingMessageLimitStrategy is used to prevent slow topic consumers to block producers and affect other consumers by limiting the number of messages that are retained For more information, see: http://activemq.apache.org/slow-consumer-handling.html --> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy> If I run this Python code: from json import dumps from random import randint from stomp import Connection conn = Connection([("localhost", 61613)]) conn.connect() for _ in range(25): priority = randint(1,9) conn.send("/queue/Priority Test", dumps({}), "application/json", headers={"persistent": "true", "priority": priority}) The messages appear in the queue (and are therefore consumed from the queue) in the order they arrived, not priority order. Of course, if I manually sort the messages using the web interface (http://localhost:8161/admin/browse.jsp?JMSDestination=Queue+Name<http://localhost:8161/admin/browse.jsp?JMSDestination=Queue+Name+>) the messages will be consumed in the desired order, but this is not a workable solution. Am I missing somehing? ________________________________ The information contained in this e-mail and any attachments from COLSA Corporation may contain company sensitive and/or proprietary information, and is intended only for the named recipient to whom it was originally addressed. If you are not the intended recipient, any disclosure, distribution, or copying of this e-mail or its attachments is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the e-mail and any attachments. COLSA Proprietary