ID дедупликации SQS и обновления элементов - PullRequest
1 голос
/ 10 марта 2020

У меня есть очередь SQS, которая запускает лямбду каждый раз, когда в очередь приходит сообщение.

сообщение содержит информацию о продукте, который мы назовем его A. Когда выполняется лямбда, он вставляет данные продукта A в RDS.

Однако через 30 секунд придет другое сообщение, содержащее другие информация о продукте А, который снова вставит данные в RDS.

Есть ли какой-нибудь метод, позволяющий увеличить задержку лямбды, запускающей SQS? Кроме того, можно ли обрабатывать новые сообщения, полученные для продукта А, и отбрасывать старые? Я хочу использовать дедупликацию сообщений SQS, чтобы использовать каждое сообщение, полученное для продукта, как уникальное, но я не уверен, что оно подходит для этого варианта использования?

Другое решение состояло в том, чтобы заменить SQS «настраиваемой очередью», заменив SQS экземпляром RDS aurora, лямбда-функция затем сделает cron для экземпляра и выберет продукт с истекшим TTL по порядку. вставить в БД, но я нахожу это немного излишним, есть ли другой способ сделать это?

Спасибо

1 Ответ

2 голосов
/ 11 марта 2020

Основываясь на комментариях, частичное решение проблемы заключается в настройке сопоставления источника событий между Lambda и SQS.

В идеальной ситуации производитель должен быть модифицирован в этой ситуации. Однако, поскольку производитель не может быть изменен, может быть реализовано решение для кэширования (например, ElastiCache) для хранения «неполных» сообщений sqs перед их записью в RDS и для фильтрации дубликатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...