#amazon-web-services #serverless
#amazon-веб-сервисы #Бессерверная
Вопрос:
У меня есть некоторые данные, которые необходимо обработать в определенный момент времени.
Моя текущая стратегия заключается в том, чтобы извлекать данные каждую минуту, загружать их в очередь и обрабатывать.
У меня есть две проблемы с этой стратегией:
- Я не могу гарантировать, что в последнюю минуту будут собраны все данные, поэтому я использую последние две минуты; и
- Лямбды, насколько я знаю, могут запускаться несколько раз в зависимости от триггера (в данном случае SQS.)
Я пытаюсь избежать записи флага для данных из-за сложной природы пакетной обработки.
Единственное другое решение, которое я могу придумать, — это использовать S3 для создания файла блокировки.
Есть ли лучший способ «запустить» будущие события? Существует ли стратегия вне базы данных и флагов S3?
Ответ №1:
Взгляните на очереди SQS FIFO, они предназначены для доставки один и только один раз.
Теперь вы можете использовать Amazon Simple Queue Service (SQS) для приложений, которым требуется обработка сообщений в строгой последовательности и ровно один раз с использованием очередей первого поступления и первого выхода (FIFO). Очереди FIFO предназначены для обеспечения строгого соблюдения порядка отправки и получения сообщений и того, чтобы каждое сообщение обрабатывалось ровно один раз. …источник
Комментарии:
1. Вау, я и не знал, что в FIFO есть больше деталей. Строгий порядок не требуется, но в нем есть функции дедупликации! Спасибо!