У меня несколько сотен клиентов. Я хочу, чтобы у каждого клиента была отдельная очередь SQS и Lambda работник. Из-за нижеприведенных ограничений.
- Я запрашиваю устаревшую стороннюю систему от имени моих клиентов. Эта система требует последовательного запроса по одному.
- Задания не создаются равномерно. У одного клиента есть несколько рабочих мест, у других много. Но я должен обрабатывать задания заказчиков равномерно.
Итак, задания должны обрабатываться параллельно заказчиками (для нескольких заказчиков одновременно) и последовательно заказчиком.
Эти работники сделали того же исходного кода. Кроме того, каждая очередь имеет одинаковый формат сообщения.
Позвольте мне объяснить, например, плохой случай. 10 очередей могут запускать одну и ту же лямбду. И эта лямбда ограничена 10 одновременностями. По этому я могу обрабатывать параллельно. Но если какая-либо из очередей пуста, другие очереди имеют более одного рабочего. И последовательная обработка не может быть гарантирована.
Каков мой лучший вариант, если говорить архитектурно, для выполнения sh этого? Стоит ли делать лямбды для каждого клиента?