【发布时间】:2017-03-19 07:36:52
【问题描述】:
我想在从 aws fifo sqs 检索后区分消息以路由到正确的处理器。我计划使用发送请求时设置的 MessageGroupId 。 我正在使用 Java sdk。 sendMessageRequest.setMessageGroupId(messageGroupId);
Documentation表示可以作为AttributeName的请求参数检索
MessageGroupId - 返回调用 SendMessage 操作的发件人提供的值。具有相同 MessageGroupId 的消息按顺序返回。 但是,我找不到这样做的正确方法/方法。没有属性 MessageGroupId 存在且大小为 0。
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages)
{
System.out.println(" Size getAttributes: " + message.getAttributes() .size());
}
只有当我明确设置任何属性时,它才是可检索的(如 和 MESSAGEPRIORITY),但如何接收 MessageGroupId 等属性的值?
感谢您的帮助。
【问题讨论】:
-
在 receiveMessageRequest.withAttributeNames("All") 之后与 message.getAttributes() 一起使用,如下面的回复中所建议的那样。