Java 列表<;信息>;虽然我传递了许多消息,但只包含一条消息
当我向我的SQS发送多条消息并像 //向队列发送消息Java 列表<;信息>;虽然我传递了许多消息,但只包含一条消息,java,amazon-web-services,message,amazon-sqs,Java,Amazon Web Services,Message,Amazon Sqs,当我向我的SQS发送多条消息并像 //向队列发送消息 SendMessageRequest smr = new SendMessageRequest(queueUrl, "one"); sqs.sendMessage(smr); smr = new SendMessageRequest(queueUrl, "two"); sqs.sendMessage(smr); smr = new SendMessageRequest(queueUrl, "three"
SendMessageRequest smr = new SendMessageRequest(queueUrl, "one");
sqs.sendMessage(smr);
smr = new SendMessageRequest(queueUrl, "two");
sqs.sendMessage(smr);
smr = new SendMessageRequest(queueUrl, "three");
sqs.sendMessage(smr);
Thread.sleep(5000);
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
//读取队列
SendMessageRequest smr = new SendMessageRequest(queueUrl, "one");
sqs.sendMessage(smr);
smr = new SendMessageRequest(queueUrl, "two");
sqs.sendMessage(smr);
smr = new SendMessageRequest(queueUrl, "three");
sqs.sendMessage(smr);
Thread.sleep(5000);
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
ReceiveMessageRequest ReceiveMessageRequest=new ReceiveMessageRequest(queueUrl);
List messages=sqs.receiveMessage(receiveMessageRequest.getMessages();
我的列表中只有一条消息
当我第二次重复“阅读队列”时,我得到第二条消息,当我第三次重复时,我得到第三条消息。从队列中检索的消息是随机顺序的。但是为什么我没有得到
列表中的所有3条消息呢 您需要在请求中设置maxNumberOfMessages
试一试
看看你能不能全部拿到
编辑
事实上,我刚刚看到了这个,我想你不会一次收到所有的信息。您将需要多次调用该方法。我们将等待超时设置为20并获得倍数。在获取所有邮件之前,您可能已经没有时间了。阅读邮件后删除邮件将允许您访问队列中的其他邮件。因此,您必须拨打多个电话才能查看所有邮件
这对我很有用:sqs.deleteMessage(sqsqueurl,message.getReceiptHandle())代码>