Есть ли способ динамически назначать очереди SQS для реализации метода @SqsListener, вместо того, чтобы это должно быть stati c? - PullRequest
0 голосов
/ 07 февраля 2020

В настоящее время, исходя из моего понимания этих вопросов ( здесь , и здесь ), в AWS Сообщения для Spring Boot необходимо установить имя очереди или URL-адрес очереди в определение аннотации @SqsListener в виде строки stati c, которую Spring может прочитать при запуске. Вы не можете сделать это переменной или списком очередей, так что вы можете определить один метод и сделать так, чтобы этот метод был обработчиком для всех этих очередей SQS.

В моем приложении более 40 очередей. То, что я хотел бы сделать, это взять некоторые из этих очередей, поместить их в список и передать их в аннотацию @SqsListener, чтобы я мог иметь один метод для этих X очередей и поместить другой набор очередей Y в аннотация другого метода. Но не похоже, что я могу это сделать. Это правильно? Есть ли другой способ сделать это?

Мне начинает не нравиться реализация пакета spring-cloud-aws-messaging maven с аннотацией @SqsListener для метода, который "слушает" в указанной c очереди и вызывает этот метод, когда приходит новое сообщение. Не в последнюю очередь потому, что это заставляет меня использовать 1.0 из AWS Java SQS SDK, а не использовать 2.0. Я бы предпочел провести опрос самостоятельно как-нибудь весной, но я знаю, как это сделать. Как я могу опросить список очередей SQS в Spring Boot? Я хотел бы, чтобы я мог просто настроить его на длительный опрос в течение примерно 20 секунд (максимум в соответствии с AWS) и если он находит сообщение, он возвращает его и запускает следующий опрос. Это возможно?

...