2009-06-02 3 views
26

У меня есть приложение, которое опроса нескольких источников rss в Интернете.Политика для опроса rss

Что такое этикет при опросе других веб-серверов других компаний. Как часто опросить и т. Д.?

Каковы наилучшие методы?

ответ

36
  1. Использовать HTTP-кеш. Отправить Etag и LastModified заголовки. Признать ответ 304 Not modified. Таким образом, вы можете сэкономить много полосы пропускания. Кроме того, некоторые скрипты распознают заголовок LastModified и возвращают только частичное содержимое (т. Е. Только два или три новых элемента вместо 30 или около того).

  2. Не опробуйте RSS из сервисов, поддерживающих RPC Ping (или другое обслуживание PUSH, например PubSubHubbub). То есть если вы получаете оповещения PUSH от службы, вам не нужно проводить опрос данных в стандартном интервале - делать это один раз в день, чтобы проверить, работает ли механизм еще или нет (ping может быть отключен, перенастроен, поврежден и т. д.). Таким образом, вы можете получать RSS только при получении уведомлений не каждый час или около того.

  3. Проверьте TTL (в RSS) или заголовки управления кешем (Expires в ATOM) и не извлекайте их до истечения ресурса.

  4. Попробуйте адаптироваться к частоте новых элементов в каждом отдельном RSS-канале. Если на прошлой неделе было только два обновления в определенном фиде, не извлекайте его более одного раза в день.AFAIR Google Reader делает это.

  5. Снизить ставку в ночное время или в другое время, когда движение на вашем сайте низкое.

  6. Наконец, сделайте это один раз в час. ;)

+1

+1 Отличные очки. – cgp

+1

# 2 не обязательно хорошая идея. Сайт, который публикует RSS-канал, должен быть настроен на отправку фидера для его работы. – ceejayoz

+0

да, ceejayoz, я имел в виду именно это. отредактировал мой ответ немного –

1

Однажды час - это частота, которую я слышал.

5

Google FeedFetcher утверждает, что опросы rss-ленты немного меньше одного раза в час.

От: http://code.google.com/apis/ajaxfeeds/documentation/

Подача Crawl Частота

Как Google AJAX Feed API использует Feedfetcher, данные канала с AJAX Feed API может не всегда быть в курсе. Поисковый робот Google (Feedfetcher) извлекает каналы с большинства сайтов менее одного раза в час. Некоторые часто обновляемые сайты могут обновляться чаще.

+0

+1 для справки – cgp

+0

Поскольку code.google.com больше не существует, ссылка мертва. Документация по-прежнему поддерживается по состоянию на 10/19/16 по адресу: https://support.google.com/webmasters/answer/178852?hl=ru – lordoku

2

Once an hour, если вы хотите просто пойти по правилу большого пальца (но ссылка объясняет некоторые лучшие варианты).

+0

+1 для справки – cgp

0

Rss имеет настройку ttl, поэтому вы должны только опросить, когда истекает срок действия TTL.

Но я думаю, если они не ставят один в своей их проблемы, и вы должны опрашивать что-то вроде один раз в час

3

Ну я собираюсь пойти туда, не обращая внимания на сообщения, которые говорят «Google говорит, мы делаем »и говорим: так часто, как вам реально нужно.

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

Конечно, вы не можете забивать сервер запросами, но если они публикуют достаточно, чтобы вы запрашивали один раз в минуту, я не вижу, как неразумно соответствовать этой ставке.

+0

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

+1

Моя точка зрения (что я соглашусь, я не согласен с тем, что не прочитал цитату) заключается в том, что Google не обязательно должен быть всем и прекратить все лучшие практики или этику. – Oli

0

Это не полный ответ, но обратите внимание на сигналы push.

The RSS blog указывает, что наилучшая практика задает weblogs.com об измененных блогах.

Существует также некоторый, er, hubbub, около pubsub, способ подписаться на push-оповещения, которые имеют некоторый импульс.

0

Отметьте, что twitter использует (настраиваемый) X-RateLimit-Remaining и X-RateLimit-Limit заголовки (в ответе HTTP), чтобы указать максимальное количество разрешенных опросов для каналов Atom. Как-то жаль, что они не использовали стандартное поле Expires (которому было установлено 30 лет назад: P) Я думаю, что их реклама Cache-Control: no-cache также исключает общее время истечения срока годности, определенное в RFC 2616 (раздел 13.2. *) , Еще жаль, что Atom, похоже, не предоставляет стандартизованного способа рассказать, как часто предлагается опросить канал.

Смежные вопросы