2011-06-20 9 views
8

Piszę małą aplikację na własny użytek, która pochłonie publicznie opublikowany kanał RSS.RSS: częstotliwość odświeżania?

O ile wiem, w protokole nie ma mechanizmu subskrypcji/postu; Muszę okresowo otrzymywać moją aplikację HTTP-GET z kanałem RSS.

Jeśli tak jest, chciałbym go pobrać co dziesięć minut, ale martwię się, że zostałem uznany za sprawcę przemocy. Z pewnością byłbym zaniepokojony, gdyby zobaczyłem, że ktoś szturcha mój serwer co dziesięć minut przez wiele tygodni.

Czy to jest ważny problem? Czy istnieje ogólna rada dotycząca "rozsądnej" częstotliwości odświeżania? Czy nawet moje fakty są proste?

+0

Powiązane (nie dokładnie duplikaty): http://stackoverflow.com/questions/6389255/rss-feed-how-to-recommend-an-update-interval/6394390#6394390 – bronsoja

+0

Craigslist feed nie definiuje żadnych wymienionych atrybutów (ttl, skipDays, skipHours). – bukzor

Odpowiedz

8

Ponieważ RSS jest zbudowany na protokole HTTP, ogólnie większość witryn powinna respektować nagłówek HTTP If-Modified-Since. Jest to dość lekkie i większość serwerów powinna mieć możliwość szybkiego zwrócenia tych informacji.

Po stronie klienta należy śledzić, kiedy ostatnio wysłano żądanie i przekazać je serwerowi. Jeśli serwer zwróci kod 304, będziesz wiedział, że nic się nie zmieniło. Ale co ważniejsze, serwer nie musi zwracać informacji o kanale, zapisując bajty ruchu. Jeśli serwer zwróci wartość 200, musisz przetworzyć wyniki i zapisać datę odpowiedzi.

Ostatecznie odpowiedź na to pytanie zależy od rodzaju informacji na drugim końcu kanału RSS. Jeśli jest to blog, to prawdopodobnie raz na 4-8 godzin wystarczy. Ale jeśli kanał RSS jest paszy z oferty akcji (nie jest to prawdopodobne, tylko przykład), to co 10 minut nie jest wystarczające.

+0

To dobry pomysł. Zauważyłem również, że ustawili nagłówek http, który daje mi wskazówkę: 'Kontrola pamięci podręcznej: max-age = 900', co powoduje, że myślę, że nie byłoby to nie w porządku co 15 minut. – bukzor