Приоритетная очередь с AWS SQS и Lambda в качестве потребителя - PullRequest
1 голос
/ 25 апреля 2019

У меня вопрос об использовании сообщений.

На данный момент у нас есть очередь в AWS SQS, скажем, origQueue и out-of-the-box-lambda-based-потребление-сообщений в этой очереди.

Теперь, чтобы удовлетворить одну особенность потребления сообщений на основе приоритета (высокий, средний, низкий) (на основе набора номера с приоритетом)внутри сообщения) я думаю иметь набор из 3 очередей, причем каждая очередь относится к разному уровню приоритета.В очереди с наивысшим приоритетом будет продолжаться использование нестандартных лямбда-сообщений.Пакетный процесс будет продолжаться с интервалом в 5 минут.каждый для продвижения некоторых сообщений из очередей со средним и низким приоритетом.Логика этого пакетного процесса в настоящее время не продумана, но это может быть что угодно, скажем, собрать 10 сообщений со средним приоритетом и 5 сообщений с низким приоритетом, оба в возрасте более 1 часа, и перевести их в очередь с высоким приоритетом, чтобы ониможет быть рассмотрен вышеупомянутым нестандартным лямбда-потреблением сообщений.

Поэтому, прежде чем пойти по этому пути, я просто хотел собрать другие потенциальные идеи.Существует ли какая-либо готовая функция AWS или какой-либо шаблон для решения этой проблемы потребления сообщений на основе приоритетов?

PS

Другой (не выбранный) подход, который я придумал, заключался в следующем:вставьте элементы в очередь с учетом приоритета, при котором очередь будет всегда упорядочена по приоритету.Но эта «динамическая вставка во время выполнения» не представляется осуществимой, поскольку поток входящих сообщений всегда включен.

1 Ответ

1 голос
/ 25 апреля 2019

AWS рекомендует, как вы сначала предложите, иметь 3 отдельные очереди SQS, то есть одну для каждого уровня приоритета.См. Предложение здесь внизу страницы.Что бы ни потребляло, каждая очередь должна координироваться отдельно, поскольку ни одна из очередей не «знает», каков их приоритет по своей природе.

...