Я отправляю уведомление своим пользователям в зависимости от того, какая подписка у каждого пользователя.
Например:
User A
подписался на все новостные статьи
User B
подписался на все комментарии
User C
подписался на все новое на сайте
У меня есть скрипт, запускаемый каждые 5 минут (если он еще не запущен), который выполняет следующие действия:
- Получайте новые «материалы» (комментарии, новостные статьи и т. Д.), Опубликованные после последнего запуска
- Для каждого результата извлекайте всех пользователей, которые подписались на «контент»
- Для каждого пользователя отправляет уведомление
Что меня беспокоит, так это то, что если у меня есть 1000 новых «материалов», а мои пользователи подписаны на 50% этого, моему сценарию понадобится целая вечность, чтобы завершить работу, или мой сервер выйдет из строя.
То, что я придумываю, состоит в том, чтобы выбрать только 100 новых «материалов» за прогон и уведомить пользователей. У меня все еще есть проблема с количеством пользователей, которые могут на него подписаться.
Чем я думал, я мог бы ограничить количество пользователей, которых я выбираю, до 100, чем повторять, пока не достигну всех пользователей.
Это правильный подход? Есть ли более простой способ сделать это? Как крупные сайты обрабатывают уведомления своих пользователей?