Мое приложение движка приложения получает уведомления от SendGrid для обработки доставки электронной почты, открытий и т. д. Sendgrid не выполняет большую пакетную обработку этих уведомлений, поэтому я мог получать несколько уведомлений в секунду.
Я хотел бы выполнить пакетную обработку входящих уведомлений, например, обработать все уведомления, полученные за последнюю минуту (моя обработка включает транзакции, поэтому мне нужно их объединить, чтобы избежать конфликтов). Кажется, есть несколько способов сделать это...
Для хранения входящих уведомлений я мог бы:
- добавить объект в хранилище данных или
- создать задачу очереди вытягивания.
Для запуска обработки я мог бы:
- Запускайте задание CRON каждую минуту (это хорошая идея?) или
- Пусть обработчик, обрабатывающий входящие запросы Sendgrid, инициирует обработку уведомлений, но только в том случае, если последний триггер был более минуты назад (может хранить дату последнего триггера в кэше памяти).
Я хотел бы услышать плюсы и минусы вышеперечисленных или других подходов.