Я пытаюсь отправить огромное количество напоминаний в виде текстовых сообщений, которые хранятся в базе данных MongoDB, которые необходимо отправить в определенное время с точностью до минуты (они будут отправлены с использованием AWS).
В настоящее время идея состоит в том, чтобы использовать AWS, чтобы рабочий-лямбда, который каждую минуту вызывал CloudWatch, извлекал напоминания на текущую минуту и помещал их в очередь SQS, где работники извлекали бы напоминания для отправки.
Проблема в том, что я обеспокоен тем, что напоминания будут отправлены слишком поздно либо из-за количества напоминаний в очереди, либо из-за того, что база данных напоминаний слишком велика, чтобы выполнять запросы достаточно быстро. Итак, первый вопрос: могу ли я сделать запрос в базу данных, скажем, на 5 минут раньше, а затем добавить их в очередь для отправки в точное время? Я знаю, что вы можете добавлять таймеры к сообщениям SQS, но вы не можете указать время, будет ли это лучшим способом сделать это?
Также стоило бы сохранить базу данных всех напоминаний, которые должны произойти, а затем перенести прошлые напоминания в другую базу данных после их добавления в очередь SQS (мне нужно сохранить прошлые напоминания)? Это хороший способ сделать эту систему?
Редактировать: В настоящее время я планирую разработку, поэтому у меня нет никаких узких мест. Мы ожидаем, что в самое загруженное время нам придется отправлять от 300 до 400 напоминаний в минуту, но, по оценкам, база данных будет расти примерно на 100 записей в день.