Когда лучше использовать опрос вместо API канала?

У меня есть приложение, в котором пользователи могут совместно работать над фотоальбомами. В настоящее время я использую опрос на клиенте для проверки нового контента каждые 30 секунд. В любой момент времени может быть любое количество людей, загружающих и просматривающих альбом.

На стороне сервера я кэширую возвращаемые данные (поэтому запрос нового контента обходится дешево). Я предполагаю, что опрос каждые 30 секунд от нескольких клиентов приведет к тому, что большее количество экземпляров останется активным (и, таким образом, увеличится стоимость).

Было бы излишним использовать API-интерфейс канала для вышеуказанного варианта использования вместо опроса? Поддерживает ли канал API экземпляры? Существуют ли варианты использования, в которых предпочтительнее использовать опрос, а не использование API канала?


person Rob Curtis    schedule 17.05.2013    source источник
comment
Это будет зависеть от нескольких факторов, включая количество пользователей и частоту повторных подключений. Помните стоимость, связанную с API канала — 100 бесплатных подключений канала в день, затем 0,001 доллара США за каждый после этого. Канал отлично работает, если вы можете свести количество подключений к минимуму.   -  person rGil    schedule 17.05.2013


Ответы (1)


Я использую каналы, но я нахожу, что они не очень хороши. Если канал истекает из-за отключения сети, это каким-то образом портит историю в моем браузере. Я зарегистрировал ошибку чуть более недели назад, но она не была подтверждена. Более месяца назад была зарегистрирована еще одна ошибка, которая также не была подтверждена, поэтому не ожидайте быстрой поддержки по проблемам с каналом.

Хорошо иметь каналы — вы можете уведомить пользователей менее чем за секунду, если статус какого-либо рода изменится, но они ненадежны. Иногда событие разъединения не происходит, а канал просто перестает работать. Моя текущая система использует каналы, но также опрашивает каждые 5-10 секунд. Из-за ненадежности я бы не стал использовать каналы в качестве замены для опроса, а просто для более быстрого ответа.

Даже тогда вам придется решить, сэкономит ли это вам деньги. Если вы ожидаете, что пользователи оставят ваше приложение открытым на 15 минут, не обращаясь к серверу, возможно, вы сэкономите некоторое время экземпляра. Однако, если ваши пользователи все равно обращаются к серверу, ваши экземпляры, вероятно, не успеют завершить работу. Кроме того, поддержание работоспособности инстансов на самом деле помогает немного сократить количество холодных запусков.

person dragonx    schedule 17.05.2013
comment
Можно ссылки на баги. Можете ли вы также предоставить резервные примеры сбоев API канала (кроме неофициальных свидетельств)? - person Rob Curtis; 18.05.2013
comment
Я рекомендую просматривать активные проблемы для Channel API в системе отслеживания проблем. Попробуйте следующее: code.google.com/p/googleappengine/issues/ - person dragonx; 18.05.2013
comment
Что касается доказательств, то они все анекдотичны. Если вы будете искать GAE на доске сообщений группы Google, вы не найдете много похвалы за надежность Channel API. - person dragonx; 18.05.2013