Политика для опроса rss
У меня есть приложение, которое проверяет несколько rss-источников в Интернете.
Что такое этикет при опросе других веб-серверов. Как часто опросить и т.д.
Каковы наилучшие методы?
Ответы
Ответ 1
-
Использовать кеш HTTP. Отправляйте заголовки Etag
и LastModified
. Признать ответ 304 Not modified
. Таким образом, вы можете сэкономить много полосы пропускания. Кроме того, некоторые скрипты распознают заголовок LastModified
и возвращают только частичное содержимое (т.е. Только два или три новых элемента вместо 30 или около того).
-
Не проводите опрос RSS из сервисов, поддерживающих RPC Ping (или другой сервис PUSH, например PubSubHubbub). То есть если вы получаете оповещения PUSH от службы, вам не нужно проводить опрос данных в стандартном интервале - делать это один раз в день, чтобы проверить, работает ли механизм или нет (ping можно отключить, перенастроить, повредить и т.д.). Таким образом, вы можете получать RSS только при получении уведомлений не каждый час или около того.
-
Проверьте заголовок TTL (в RSS) или кеш-памяти (Expires
в ATOM) и не извлекайте, пока ресурс не истечет.
-
Попробуйте адаптироваться к частоте новых элементов в каждом отдельном RSS-канале. Если на прошлой неделе было только два обновления в определенном фиде, не отправляйте его более одного раза в день. AFAIR Google Reader делает это.
-
Уменьшите скорость в ночное время или в другое время, когда трафик на вашем сайте низкий.
-
Наконец, делайте это один раз в час.;)
Ответ 2
Google FeedFetcher утверждает, что опрос rss-канала немного меньше одного раза в час.
От: http://code.google.com/apis/ajaxfeeds/documentation/
Частота сканирования скачка
Поскольку API-интерфейс AJAX Feed API использует Feedfetcher, данные фида из API фида AJAX могут не всегда обновляться. Поисковый робот Google (Feedfetcher) извлекает каналы с большинства сайтов менее одного раза в час. Некоторые часто обновляемые сайты могут обновляться чаще.
Ответ 3
Хорошо, я собираюсь пойти туда, проигнорировав сообщения, которые говорят "Google говорит, что мы делаем", и говорим: так часто, как вам реально нужно.
RSS, чтобы вы были в курсе событий. Если фид публикует 10 предметов в час, но только показывает пять, вы пропустите пять из этих предметов, и фид не будет служить своей цели. Вы могли бы вообще не ударить его.
Конечно, вы не можете забивать сервер запросами, но если они публикуют достаточно, чтобы вы запрашивали один раз в минуту, я не вижу, как это необоснованно соответствовать этой скорости.
Ответ 4
Один раз в час, если вы хотите просто пойти по правилу большого пальца (но ссылка объясняет некоторые лучшие варианты).
Ответ 5
Однажды час - это частота, которую я слышал.
Ответ 6
Rss имеет в нем параметр ttl, так что вам следует только опросить, когда истекает срок действия TTL.
Но я думаю, если они не ставят один в своей проблеме, и вы должны опросить что-то вроде одного часа
Ответ 7
Это не полный ответ, но обратите внимание на push-оповещения.
В блоге RSS указано, что наилучшая практика задает weblogs.com об измененных блогах.
Существует также некоторый, er, hubbub, pubsub, способ подписаться на push-оповещения, которые имеют некоторый импульс.
Ответ 8
Я отмечаю, что twitter использует (пользовательские) заголовки X-RateLimit-Remaining
и X-RateLimit-Limit
(в ответе HTTP), чтобы указать максимальное количество разрешенных опросов для фидов Atom. Как-то жаль, что они не использовали стандартное поле Expires
(которому было установлено 30 лет в прошлом: P). Я думаю, их реклама Cache-Control: no-cache
также исключает общее время истечения срока годности, определенное в RFC 2616 (раздел 13.2. *). Еще более жаль, что Atom, похоже, не предоставляет стандартизованного способа рассказать, как часто предлагается опросить фид.