我已将一些消息添加到带有消息属性的SQS队列中。
SendMessageRequest send_msg_request = new SendMessageRequest().withQueueUrl(queueUrl)
.withMessageBody("Type 1Message")
.addMessageAttributesEntry("Type1", new MessageAttributeValue().withDataType("String").withStringValue("Type1"));
sqs.sendMessage(send_msg_request);
SendMessageRequest send_msg_request = new SendMessageRequest().withQueueUrl(queueUrl)
.withMessageBody("Type 2 Message")
.addMessageAttributesEntry("Type2", new MessageAttributeValue().withDataType("String").withStringValue("Type2"));
sqs.sendMessage(send_msg_request);
然后使用
检索消息List<String> messageAttributeNames = new ArrayList<>();
messageAttributeNames.add("Type1");
ReceiveMessageRequest receiveMessage = new ReceiveMessageRequest().withQueueUrl(queueUrl)
.withMessageAttributeNames(messageAttributeNames);
ReceiveMessageResult result = sqs.receiveMessage(receiveMessage);
List<Message> messages = result.getMessages();
但是接收呼叫正在重播属性名称为Type1&Type2的消息 香港专业教育学院尝试setMessageAttributes和withMessageAttributes,但在每种情况下,我都找回了两种类型。
这是SQS的行为还是我遗漏了一些东西? 感谢任何帮助。