Как бороться с ограничением скорости канала API?

Мне нужно внедрить систему уведомлений в режиме реального времени, такую ​​как stackru(когда кто-то добавляет ответ / комментарий к вопросу) на мой сайт. Я узнал, что API канала - это самый простой способ реализовать это в appengine. Но меня забрали ограничения квоты для API канала. При включении биллинга можно создать только 60 токенов / мин.

  • Как справиться с этим ограничением скорости канала, когда у вас есть всплеск трафика (1000 новых пользователей / сек)?
  • Как управлять 5000 пользователей (в любой момент времени)?
  • Также, каково максимальное время истечения для токена?

    * При условии, что каждому пользователю должен быть выдан токен.

1 ответ

Решение

API канала кажется излишним для упрощенного случая использования уведомления кого-то, что был добавлен ответ на вопрос, на который они смотрят. Похоже, что Channel API лучше подходит для случаев, когда задержка в несколько секунд может привести к нежелательным последствиям.

Если все, что вам нужно сделать, это каждые несколько секунд информировать пользователей о том, что что-то случилось с контентом, на который они смотрят, вы, вероятно, можете просто использовать самый простой подход короткого опроса.

Примерно так на странице:

function doPoll(){
    $.post('ajax/test.html', function(data) {
        alert(data);  // process results here
        setTimeout(doPoll,5000);
    });
}

Источник: jQuery, простой пример опроса

Всякий раз, когда изменение сделано, загрузите его в memcache. Сообщение в "ajax/test.html" будет отправлено обработчику, который должен проверять memcache на наличие обновлений. Таким образом, вы не попадаете в хранилище данных.

Другие вопросы по тегам