Apple Push Notification Service - много уведомлений для отправки - PullRequest
2 голосов
/ 19 мая 2011

Я сейчас пытаюсь разработать часть моего сервера, которая будет обрабатывать отправку уведомлений в APN (затем на iphones). Фактически, это выделенный сервис, работающий на моем сервере. Каждые 15 минут этот сервис просматривает в моей базе данных MySQL уведомления для отправки.

Я имею дело со всей частью сертификата, и я пытаюсь определить лучшую стратегию для реализации этого. Ì планирую использовать:

  • Задание cron, запускающее сервер Java
  • Java-сервер, использующий java-apns

У меня есть два вопроса по этому поводу:

  • У вас есть совет относительно того, что я планирую делать?
  • Поскольку каждые 15 минут я буду отправлять около 1 000 уведомлений (от 1 до 1 000 телефонов), существует ли особый способ устранения этой перегрузки?

Спасибо за вашу помощь!

Kheraud

1 Ответ

1 голос
/ 19 мая 2011

Я не уверен, почему вы хотите запускать эту работу каждые 15 минут.Является ли этот временной интервал значимым для вашего приложения, или это произвольное число?В оставшейся части моего ответа я предполагаю последнее.

Вам необходимо создать фоновый процесс, который будет поддерживать постоянное соединение открытым для APNS.Это лучше, чем запускать вашу программу из задания cron, потому что установка SSL-соединения снова и снова стоит очень дорого.(Хотя, если вы действительно хотите придерживаться 15-минутного, я думаю, что запуск из задания cron не так уж и плох. Просто не открывайте и не закрывайте соединение для каждого уведомления, которое вы хотите отправить.)

Вместо отправки 1000 уведомлений каждые 15 минут, отправляйте 100 уведомлений каждую минуту.Или, скорее, отправлять несколько уведомлений каждую секунду.

Если вам нужно отправить много уведомлений, вы можете открыть несколько подключений к APNS для одного и того же приложения (но не более 15).

Для максимальной эффективности вы можете объединять несколько уведомлений в каждом пакете, который вы отправляете в APNS (например, с использованием алгоритма Nagle).

...