Perhaps you could look at the Polling Consumer EIP.
I am showing some example code from the camel website, which may be the basis for your solution:
public void someBusinessLogic() {
// loop to empty queue
while (true) {
// receive the message from the queue, wait at most 3 sec
String msg = consumer.receiveBody("activemq:queue.inbox", 3000, String.class);
if (msg == null) {
// no more messages in queue
break;
}
// do something with body
msg = "Hello " + msg;
// send it to the next queue
producer.sendBodyAndHeader("activemq:queue.foo", msg, "number", count++);
}
}
You can try to modify this code to have a counter which tries to consume 10 messages from your hi-pri queue and 1 message from your lo-pri queue.
Have fun and good luck. Interested to know if this succeeds or not :)