On Fri, Jun 4, 2010 at 1:20 PM, Christian Mueller <christian.muel...@gmail.com> wrote: > > Hello list, > > I have a requirement to process online (coming from an external web service) > and batch (several thousand) messages. The online messages are more prior > (the customer is waiting of the response) and should be processed before the > batch messages (I think a common requirement). Because ActiveMQ at this time > doesn't support message priority
Yeah I think the AMQ people are looking into this for AMQ 6. > ([how-can-i-support-priority-queues|http://activemq.apache.org/how-can-i-support-priority-queues.html]), > I was looking for another solution. I read this thread > [Camel-and-jms-priority|http://old.nabble.com/Camel-and-jms-priority-ts25962858.html#a25962858] > and found it to complicated - I'm lasy... :-) > > My question is, would this Camel route also do a good job for this > requirements? > > {code} > from("activemq://queue:inbox?concurrentConsumers=5&selector=priority<='4'") > .to("direct:inbox"); > > from("activemq://queue:inbox?concurrentConsumers=5&selector=priority>'4'") > .to("direct:inbox"); > > from("direct:inbox") > .processRef("myProcessor") > .to("activemq://queue:outbox"); > {code} > I think JMS selectors is generally slow. But I assume they can be used. I wonder through what the statement should be for the priority. Most likely selector=JMSPriority > 4 However there is a ticket in Camel to enhance the resequencer EIP to better support JMSPriority so it can batch out messages reordered by priority https://issues.apache.org/activemq/browse/CAMEL-2537 I would assume you could try that approach. And then we can improve the resequencer in Camel so you dont need that "hack" as shown in the ticket. Another idea is to use a JDK priority queue and have message from JMS go to that queue and then have worker threads dequeue from that priority queue. In fact we could add such a feature to the Camel SEDA queue, or something like that. However in all situations the messages is then retrained in memory and will be lost if the server crash. In the future the Camel resequencer will support persistence just as we did in 2.3 with the aggregator. > Thanks in advanced, > Christian > -- > View this message in context: > http://old.nabble.com/good-solution-to-work-with-jms-message-priority-tp28778639p28778639.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus