Политика удаления Spring Cloud AWS SQS

У нас есть прослушиватель SQS, например:

@MessageMapping("queueName")
void listen(String message) { ... }

Для этой очереди настроена политика переадресации с соответствующей очередью недоставленных сообщений.

Проблема заключается в том, что реализация Spring Cloud AWS по умолчанию удаляет сообщение при его опросе и внутренне связывает 3 попытки для его обработки, а затем терпит неудачу.

Я вижу, что есть перечисление SqsMessageDeletionPolicy со значениями ALWAYS и ON_SUCCESS, среди прочего. Я не могу найти ни в одной документации, как изменить QueueAttributes для этой очереди, чтобы изменить это поведение.

Кто-нибудь знает?


person Ricardo Piccoli    schedule 16.08.2017    source источник
comment
В названии написано САС. Это орфографическая ошибка. Это должно было быть SQS.   -  person Ricardo Piccoli    schedule 16.08.2017


Ответы (2)


Похоже, решение состоит в том, чтобы использовать специальную аннотацию SQS вместо общей:

@SqsListener(value = "queueName", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
void listen(String message) { ... }
person Ricardo Piccoli    schedule 16.08.2017

Принятый ответ показывает, как настроить политику удаления для одиночной очереди,

Если вы хотите установить глобальную политику удаления, которая будет использоваться всеми @SqsListener, можно установить с помощью свойства: cloud.aws.sqs.handler.default-deletion-policy=ON_SUCCESS

person Niraj Sonawane    schedule 09.05.2021