Короче говоря, распределите большой набор запросов на меньший набор запросов.
Большинство серверов в настоящее время являются многоядерными, они должны выполнять многозадачность
Настройка двух скриптов
Основные сценарии
- получить событие, которое начинается через 5 минут
- найти всех пользователей и данные, которые необходимо уведомить (предположим, 200)
- для каждых 10 уведомлений, порождайте
shell_exec
процесс, вызывающий скрипт уведомления, и обязательно переводите вызов в фоновый режим (см. php, выполняющий фоновый процесс )
Сценарий уведомления
- получить сведения о 10 пользователях, которых необходимо уведомить (сведения вводятся из мастер-скриптов)
- обработать уведомление
Преимущества
Итак, вместо традиционной выборки один пользователь уведомляет одного пользователя,
вам нужно 200 x 1 = 200 seconds
Теперь вам просто нужно
1 seconds for master + (10 x 1 seconds) = 12 seconds
На что обратить внимание
Сервер и ресурсы полосы пропускания не безграничны,
ограничено количество процессов, которые ваш сервер может запускать одновременно,
это до вас, чтобы выполнить тестирование и отрегулировать