I have the following function that consume messages from sqs:
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(address);
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages) {
log.debug("Receive event: address {} MessageId {} Body {}",
address, message.getMessageId(), message.getBody());
for (Entry<String, String> entry : message.getAttributes().entrySet()) {
System.out.println(" Attribute");
System.out.println(" Name: " + entry.getKey());
System.out.println(" Value: " + entry.getValue());
}
}
We miss two things:
1. We need to wrap this somehow within infinite loop to pull messages.
2. After consuming the message I want it to be offload to the main thread loop to enjoy non-blocking flow.
Any ideas?
Thank you.