Как бороться с ограничением скорости канала 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 на наличие обновлений. Таким образом, вы не попадаете в хранилище данных.