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

Reply via email to