无法按优先顺序获取消息 Spring camel rabbitmq
Unable to get message in priority sequence Spring camel rabbitmq
我是 spring camel rabbitmq
的初学者。
我可以在消息 header 中设置消息优先级,方法是在生产者端将其设置为交换 headers,如下所示:
exchange.getOut().setHeader("rabbitmq.PRIORITY", 1);
但是在使用消息时,它们并没有按优先顺序排列。帮助!!
我可以在 rabbitmq
的 Web 界面中看到适当设置了优先级 header
请仔细阅读 this document. You should also search for an answer on the RabbitMQ Users List 的 "Interaction with consumers" 部分或 post 你的问题,如果没有人问的话。
找到问题了。
问题是我无法使用 camel
端点设置 x-max-priority。
需要在队列的 queueArgsConfigurer 选项中添加。
为此,我们需要像这样实现 ArgsConfigurer 接口:
@Component(value="QueueArgsConfigurer")
public class QueueArgsConfigurer implements ArgsConfigurer {
@Override
public void configurArgs(Map<String, Object> map) {
map.put("x-max-priority", 3);
}
}
并像这样添加到队列端点 queueArgsConfigurer 选项:
queueArgsConfigurer=#QueueArgsConfigurer
由于我使用的是 spring
我通过其 bean 名称获取 QueueArgsConfigurer。
我是 spring camel rabbitmq
的初学者。
我可以在消息 header 中设置消息优先级,方法是在生产者端将其设置为交换 headers,如下所示:
exchange.getOut().setHeader("rabbitmq.PRIORITY", 1);
但是在使用消息时,它们并没有按优先顺序排列。帮助!!
我可以在 rabbitmq
的 Web 界面中看到适当设置了优先级 header
请仔细阅读 this document. You should also search for an answer on the RabbitMQ Users List 的 "Interaction with consumers" 部分或 post 你的问题,如果没有人问的话。
找到问题了。
问题是我无法使用 camel
端点设置 x-max-priority。
需要在队列的 queueArgsConfigurer 选项中添加。
为此,我们需要像这样实现 ArgsConfigurer 接口:
@Component(value="QueueArgsConfigurer")
public class QueueArgsConfigurer implements ArgsConfigurer {
@Override
public void configurArgs(Map<String, Object> map) {
map.put("x-max-priority", 3);
}
}
并像这样添加到队列端点 queueArgsConfigurer 选项:
queueArgsConfigurer=#QueueArgsConfigurer
由于我使用的是 spring
我通过其 bean 名称获取 QueueArgsConfigurer。