Как спроектировать контент с автоматическим назначением, поступающий из SQS?

#redis #architecture #amazon-sqs #system-design

#redis #архитектура #amazon-sqs #system-design

Вопрос:

Я создал приложение, которое отвечает за модерирование входящего контента, прежде чем отправлять его в основное приложение. После того, как кто-то поделился предупреждением, оно попадает в sqs-in-queue. В моем приложении есть отдельный контейнер, который отвечает за выполнение фоновых задач, включая проверку очередей на наличие новых сообщений.

Как только сообщение поступает в систему, оно сохраняется в dynamo db, а соответствующее сообщение веб-сокета отправляется интерфейсу, уведомляя о поступлении нового предупреждения.

Пользователь может войти в систему, назначить оповещение и модерировать его. Результат будет сохранен в базе данных, а модерируемый контент будет отправлен в sqs-out.

Я хочу реализовать функцию автоматического назначения. Как модератор, как только я запускаю часы модерации, я должен увидеть одно предупреждение, которое назначается мне автоматически. Как спроектировать эту функцию?

Насколько я понимаю, мне нужно отслеживать всех активных пользователей в некоторой БД (какую БД выбрать?) и иметь возможность назначать входящий контент пользователю, который является бесплатным.

Любые идеи будут высоко оценены.

Ответ №1:

Хитрость заключается в том, чтобы иметь «назначаемую» очередь работ, которая ставится в очередь после сохранения элемента в dynamo. Точно так же, как ваша очередь для входящей работы, вам нужна одна из «назначаемых» работ. Клиенты могут запрашивать работу при запуске, приложение будет опрашивать очередь в поисках назначаемой работы. Когда они завершат свою задачу, повторно опросите очередь, чтобы получить следующую доступную задачу.