Попробуйте это
a1 = [ 'foo', 'bar' ]
a2 = [ 'bar', 'baz' ]
a1-a2 != a1
true
Использовать кеш HTTP. Отправьте заголовки Etag
и LastModified
. Распознать 304 Не измененный ответ
. Таким образом вы сэкономите много трафика. Кроме того, некоторые сценарии распознают заголовок LastModified
и возвращают только частичное содержимое (т.е. только два или три новейших элемента вместо всех 30 или около того).
Не опрашивайте RSS от служб, поддерживающих ] RPC Ping (или другая служба PUSH, например PubSubHubbub ). Т.е. если вы получаете PUSH-уведомления от службы, вам не нужно опрашивать данные в стандартном интервале - делайте это один раз в день, чтобы проверить, работает ли механизм по-прежнему или нет (пинг может быть отключен, перенастроен, поврежден, и т.д). Таким образом, вы можете получать RSS только при получении уведомления, а не каждый час или около того.
Проверяйте TTL (в RSS) или заголовки управления кешем ( Expires
в ATOM) и не выполняйте выборку, пока ресурс не истечет.
Попытайтесь адаптироваться к частоте появления новых элементов в каждом отдельном RSS подача. Если за последнюю неделю в конкретном фиде было только два обновления, не загружайте его чаще одного раза в день. AFAIR Google Reader делает это.
Снизьте скорость в ночное время или в другое время, когда посещаемость вашего сайта низкая.
Наконец, делайте это один раз в час. ;)
Что ж, я собираюсь пойти туда, игнорируя сообщения, в которых говорится: «Google говорит, мы делаем», и скажу: так часто, как вам это реально нужно.
RSS есть чтобы держать вас в курсе. Если фид публикует 10 элементов в час, но показывает только пять, вы пропустите пять из этих элементов, а фид не служит своей цели. С таким же успехом вы можете вообще не попасть в него.
Конечно, вы не можете забить сервер запросами, но если они публикуют достаточно, чтобы вы запрашивали раз в минуту, я не понимаю, насколько неразумно сопоставлять этот показатель.
Один раз в час , если вы хотите просто руководствоваться практическим правилом (но ссылка объясняет некоторые лучшие варианты).
FeedFetcher от Google утверждает, что опрашивает RSS-поток чуть реже одного раза в час.
От: http://code.google.com/apis/ajaxfeeds/documentation/
Частота сканирования фида
Поскольку API фида Google AJAX использует Feedfetcher, данные фида из API фида AJAX не всегда могут быть актуальными. Сканер каналов Google (Feedfetcher) извлекает каналы с большинства сайтов менее одного раза в час. Некоторые часто обновляемые сайты могут обновляться чаще.
В Rss есть настройка ttl, так что на самом деле вы должны опрашивать только по истечении TTL.
Но я думаю, если они не поместят его в свою проблему, и вы должны опросить что-нибудь примерно раз в час
Это не полный ответ, но ищите оповещения.
Блог RSS указывает на то, что лучшая практика - это спрашивать weblogs.com об измененных блогах.
Есть также некоторый, эээ, hubbub, о pubsub, способ подписываться на оповещения, который имеет некоторый импульс.
.