Недавно мне было поручено внедрить систему push-уведомлений для мобильных приложений коммерческого веб-приложения с использованием Symfony2.
Я использовал RMSPushNotificationsBundle (https://github.com/richsage/RMSPushNotificationsBundle) для создания и отправки сообщений и реализации некоторых прослушивателей событий для отправки уведомлений на лету в список клиентов. В связи с тем, что нам также необходимо иметь запланированные уведомления, я создал пару команд Symfony, которые выполняются с помощью заданий cron. Код этих команд в основном проверяет запланированные уведомления каждые 30 минут и, если какое-либо уведомление должно быть отправлено в текущем интервале времени, отправляет его.
На данный момент все работает отлично. Мое главное беспокойство связано с масштабируемостью текущих реализаций, так как ожидается, что пользовательская база будет сильно расти.
Есть ли лучший способ пойти относительно запланированных уведомлений? Я знаю, что это немного общий вопрос, но я был бы очень признателен за любые идеи и советы.
ура
Я думаю, что это не вопрос планирования, а масштабирования. С помощью GCM (Google Cloud Messaging) вы можете использовать несколько устройств одновременно (до 1000): https://developer.android.com/google/gcm/server.html#target
Это уменьшит накладные расходы на запрос. RMSPushNotificationsBundle также поддерживает это: https://github.com/richsage/RMSPushNotificationsBundle/pull/44
Других решений пока нет …