Потребление сообщений в пакетах в amazon sqs, alpine sqs spring boot - PullRequest
0 голосов
/ 16 апреля 2020

Я настроил прослушиватель SQS для приема сообщений в Списке сообщений, но я получаю только одно сообщение за раз и получаю сообщение об ошибке, поскольку не могу преобразовать модель. StudentData в экземпляр java.util.ArrayList<com.amazonaws.services.sqs.model.Message>

моего кода это: -

@SqsListener(value = "${queueName}", deletionPolicy = SqsMessageDeletionPolicy.NEVER)
    public void receiveMessage(final StudentData studentData,
                               @Header("SenderId") final String senderId, final Acknowledgment acknowledgment) {

        // business logic
        acknowledgment.acknowledge();
    }

Любое предложение о том, как настроить слушатель sqs для использования нескольких сообщений

любая помощь будет оценена

1 Ответ

0 голосов
/ 23 апреля 2020

Аннотация слушателя SQS обеспечивает наиболее простую конфигурацию, она будет принимать сообщения одно за другим. Это ограничение исходит непосредственно из Spring QueueMessagingTemplate.

Для получения пакетов вы можете напрямую использовать клиент AmazonSQS.

    @Autowire AmazonSQSAsync amazonSqs;
    ...

    String queueUrl = amazonSqs.getQueueUrl("queueName").getQueueUrl();
    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest();
    receiveMessageRequest.setQueueUrl(queueUrl);
    receiveMessageRequest.setWaitTimeSeconds(10); // Listener for messages in the next 10 seconds
    receiveMessageRequest.setMaxNumberOfMessages(1000); // If 10000 messages are read stop listening
    ReceiveMessageResult receiveMessageResult = amazonSqs.receiveMessage(receiveMessageRequest);
    receiveMessageResult.getMessages(); // batch of messages
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...