Оптимальное определение очереди в Google App Engine для push-уведомлений, где время для пользователя является наиболее важным - PullRequest
0 голосов
/ 05 февраля 2012

У нас есть приложение GAE, которое уведомляет пользователей об изменениях спортивных целей, и мы хотим уведомить их как можно быстрее. В настоящее время мы создаем одну запись в очереди GAE для каждого уведомления, и это работает довольно хорошо. но в последнее время он немного борется с отправкой 2000-3000 уведомлений за одно изменение счета.

Какова оптимальная конфигурация очереди для максимально быстрой отправки этих событий?

В настоящее время у нас есть:

<queue>
  <name>c2dm</name>
  <rate>10/s</rate>    
</queue>  

и в appengine-web.xml

<threadsafe>true</threadsafe>

1 Ответ

1 голос
/ 06 февраля 2012

Вы можете увеличить скорость и размер сегмента, чтобы получить принудительную очередь для более быстрого выполнения задач.Вы также можете оставить max-concurrent-запросы не заданными (неограниченными).Это увеличит количество заданных вами заданий до максимального количества экземпляров, умноженных на пропускную способность одного экземпляра вашего приложения.Вы также можете увеличить максимальное количество экземпляров.

Обратите внимание, что "как можно быстрее" не может быть идеальным.Вы можете настроить эти значения на основе шаблонов пакетов, затрат на прогрев экземпляра, частоты конфликтов конкуренции в хранилище данных и т. Д., Пока не получите комфортную производительность.Если вам нужен еще больший контроль, рассмотрите возможность использования очередей извлечения, либо с внутренним экземпляром App Engine (или несколькими), либо с службой уведомлений, работающей на другой платформе, которая вызывает API REST очередей извлечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...