Pokaż wyniki 1 do 8 z 8

Temat: monitoring www

  1. #1
    Zarejestrowany
    Jul 2007
    Postów
    120

    Domyślnie monitoring www

    Witam,

    Temat to właściwie wielu rzeczy dotyczy dlatego też tutaj go umieszczam.
    Ale do rzeczy.
    Jak wykryć że strona pod danym adresem uległa zmianie.
    Zapytanie o zasób zwraca taki wynik;
    HTTP/1.1 200 OK
    Date: Sun, 11 Sep 2011 17:58:11 GMT
    Server: Apache
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Keep-Alive: timeout=1, max=100
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html

    Jak widać nie ma nic interesującego - jest no-store, no-cache co znaczy że
    za każdym razem trzeba dane na nowo pobierać.

    Jedyne co mi przychodzi do głowy to pobierać całą stronę i porównywać z tym co pobrano wcześniej. Bardzo zależy mi na szybkości wykrywaniu zmian i takie sprawdzanie co minutę jest już za długie.

    Czy jest jakiś inny sposób na wykrycie zmian czy ewentualnie co jaki okres czasu można by dokonywać takich sprawdzeń aby nie obciążać zbytnio badanej witryny i nie zostać zbanowanym.

    Pozdrawiam

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Ja napisalem sobie taka aplikacje dosc dawno i skupianie nie na naglowku nie zawsze jest dobra metoda... ale jest pare sztuczek

    Zobacz czy If-Modified-Since w zapytaniu zadziala, wiekszosc serwerow powinna to respektowac i odpowiedziec wlasciwie... HTTP 200 oznacza zmiane strony, HTTP 304 not modified. Dodatkowo mozna zoabczyc na E-Tag jesli serwer obsluguje :P
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Jul 2007
    Postów
    120

    Domyślnie

    Cytat Napisał TQM Zobacz post
    Ja napisalem sobie taka aplikacje dosc dawno i skupianie nie na naglowku nie zawsze jest dobra metoda... ale jest pare sztuczek

    Zobacz czy If-Modified-Since w zapytaniu zadziala, wiekszosc serwerow powinna to respektowac i odpowiedziec wlasciwie... HTTP 200 oznacza zmiane strony, HTTP 304 not modified. Dodatkowo mozna zoabczyc na E-Tag jesli serwer obsluguje :P
    Zarówno If-Modified-Since jak i Etag nie działają. Dają poprawne wskazania ale tylko dla plików statycznych. Pozostaje pętla i porównywanie zawartości html. Tylko jaki interwał czasowy ustawić aby nie wpływać na obciążenie serwera.

  4. #4
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    1 zapytanie na minute, nawet pelen GET nie powinien stanowic problemu dla serwera - opisz dokladniej co chcesz sprawdzac to powiem Ci czego mozna sie mniej wiecej spodziewac jesli sie da takie cos okreslic.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  5. #5
    Zarejestrowany
    Jul 2007
    Postów
    120

    Domyślnie

    Cytat Napisał TQM Zobacz post
    1 zapytanie na minute, nawet pelen GET nie powinien stanowic problemu dla serwera - opisz dokladniej co chcesz sprawdzac to powiem Ci czego mozna sie mniej wiecej spodziewac jesli sie da takie cos okreslic.
    Sam już zjechałem do 30 sekund ale chyba trzeba to przerzucić na innych klientów i wyniki zbierać do jednego worka.

  6. #6
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    nie bardzo rozumiem 'na innych klientow'
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  7. #7
    Zarejestrowany
    Jul 2007
    Postów
    120

    Domyślnie

    Cytat Napisał TQM Zobacz post
    nie bardzo rozumiem 'na innych klientow'
    Ja wyciągam dane i udostępniam innym już w formie obrobionej - tudzież opakowanej w znaczniki xml z którego inni korzystają. Więc można by tak zrobić że inni klienci czyli osoby korzystające z tych danych również w jakiś sposób przyczyniają się do pozyskiwania nowych danych. Im więcej klientów tym mniejszy interwał czasowy.

  8. #8
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Aaaah to o to chodzi... ok

    Takie rzeczy najprosciej zalatwia sie nie stosujac liniowego przebiegu priogramu, czyli ze masz jeden worker i kolejke do obrobienia. Kolejka jest ale worker robi rownolegle iles zadan - thready albo 'event based' czyli odpalasz zapytanie, nic nie blokuje I/O, nie ma czekania... jak wroca dane to odpala sie procedura analizujaca - do tego dokladasz nieco cache'u (memcached albo podobne) i masz komplecik... ewentualnie mozesz pomyslec o jakims Redis/Tokyo Cabinet/CouchDB i udostepnic jQuery API bezposrednio do bazy - jesli model bezpieczenstwa na to pozwoli

    Ja pisalem takie cos jakis czas temu w Perlu - uzylem AnyEvent do odpalenia zapytan na raz. Prosty test - zassanie 20 stron (pelen GET) liniowo jedna po drugiej zajelo okolo 30-40sek... odpalone wszystkie na raz rownolegle w modelu sterowanym eventami skonczylo sie w ciagu ok 2 sekund... tylko tyle ze wiecej lacza zjadlo bo ciagnelo wszystko na raz
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52