如果我有3个优先级为1,2和1的队列。分别为3。我希望我的消费者首先从队列中消耗优先级为1,然后是2&等等。如果优先级较高的队列为空,则使用者可以从优先级较低的队列中使用。 是否可以通过JMS或ActiveMQ或任何其他方式实现?如何?
答案 0 :(得分:1)
您必须使用此方法自行控制该逻辑。对于ActiveMQ或任何其他JMS提供程序,您只是使用另一个队列。
但是,您可以使用单个队列来实现邮件优先级。如in the documentation.
所述,有几种不同的方法可以解决这个问题如果您希望您的消费者尽可能简单,那么让经纪人找出优先权。否则,您需要使用选择器来消费多个消费者或低效的单一消费者逻辑。
在这两种情况下,您的生产者只需要足够聪明,将JMSPriority标头设置为逻辑应该具有的任何优先级。
唯一的缺点是,您有一个代理端配置专门设置该队列,而不是一切都是自动的。