Обработка очереди сообщений с длительным заданием для каждого сообщения - PullRequest
1 голос
/ 11 февраля 2020

У нас есть требование в нашем проекте, где есть список долгосрочных задач, которые необходимо выполнить. Мы добавили этот список задач в очередь сообщений (SQS).

Теперь, когда мы начинаем опрос сообщений из SQS, каждое сообщение (задача) включает обновление огромного списка записей базы данных, и мы можем сказать, что это огромное строки обновлений базы данных задаются c для опрошенного сообщения.

Дается графическое представление

    M1
/   |  \
R1  R2  R3..... 

Здесь M1 - опрашиваемое сообщение, для которого R1, R2, R3 ... ... список строк базы данных, которые должны быть обновлены.

Теперь вопрос заключается в том, как решить этот огромный список обновлений строк базы данных для данного сообщения. Должны ли мы: 1) Создать ExecutorService (мы используем Java для бэкэнда), создать несколько потоков для чтения списка записей и снова обновить их до базы данных или 2) Просто pu sh строка обновляется как отдельные сообщения обратно в очередь сообщений.

В любом из подходов, какой из них предпочтителен, и каким будет элегантное масштабируемое решение для решения этой проблемы

...