我在 SQS 中有多条消息。以下代码总是只返回一个,即使有几十个可见(不在飞行中)。 我认为setMaxNumberOfMessages将允许一次使用多个 .. 我误解了这个吗?
CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName(queueName);
String queueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
receiveMessageRequest.setMaxNumberOfMessages(10);
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages) {
// i'm a message from SQS
}
我也试过使用withMaxNumberOfMessages没有任何这样的运气:
receiveMessageRequest.withMaxNumberOfMessages(10);
我怎么知道队列中有消息?超过 1 个?
Set<String> attrs = new HashSet<String>();
attrs.add("ApproximateNumberOfMessages");
CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName(queueName);
GetQueueAttributesRequest a = new GetQueueAttributesRequest().withQueueUrl(sqs.createQueue(createQueueRequest).getQueueUrl()).withAttributeNames(attrs);
Map<String,String> result = sqs.getQueueAttributes(a).getAttributes();
int num = Integer.parseInt(result.get("ApproximateNumberOfMessages"));
以上总是先运行并给我一个int
> 1
感谢您的输入