Cache

Discussion in 'PHP' started by banned, 10 Aug 2008.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    index.php, в нем скрипт парсинга страницы news2.ru
    На сайт заходит огромное кол-во людей и если этот скрипт будет парсить так инфу все врмя, она разная как вы понимаете,то сервак накроется..
    Так вот...как сделать так чтобы этот скрипт работал только каждые 7 дней, т.е. 10 августа я зашел на сайт, он сделался и записался куда-то в кеш, дальше хоть еще 10000 человек зайдут на этот скрипт 10, 11, 12, 13 и т.д. числа им будет отдавать вся инфа из кеша...
    Так вот собственно как это замутить :)
     
    1 person likes this.
  2. iron-viper

    iron-viper Elder - Старейшина

    Joined:
    13 Nov 2007
    Messages:
    167
    Likes Received:
    45
    Reputations:
    3
    Предложу такую идею. Положи отдельный скрипт парсинга и поставь его на крон(когда надо), результаты парсинга ложи либо в БД либо в файл. А уже со страницы новостей обращайся к результатм, а не парси на лету. Вот.
     
  3. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    что может быть проще
    $parse_time() = time();
    ..
    if(time() > $parse_time + 86400 * 7){
    run_parse();
    }
     
    1 person likes this.
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Давай представим...прошлый раз узнавали новость допустим 8 августа, где это 8 августа здесь записано?
    То что ты написал не исполнится никогда...

    Мне еще заголовки важны..
    Что там посылать Expires.... lala
     
  5. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    437
    Reputations:
    90
    а если записывать дату и т.д. в cookies ?
    и в нем указывать время жизни.
     
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Sn@k3, и что тогда все равно кадлому придется куки записывать?
    Не то...
     
  7. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    $PARSE_TIME ХРАНИ ГДЕ УГОДНО, ХОТЬ НА ПОТОЛКЕ ЗАПИШИ. ЭТО ВРЕМЯ ПОСЛЕДНЕГО ПАРСИНГА САЙТА.
    if(time() > $parse_time + 86400 * 7){
    ЭТО СРАВНЕНИЕ ТЕКУЩЕГО ВРЕМЕНИ С ВРЕМЕНЕМ ПОСЛЕДНЕГО ПАРСИНГА, КОТОРОЕ ХРАНИТЬСЯ ГДЕ УГОДНО, ХОТЬ НА ПОТОЛКЕ , К КОТОРОМУ ПРИБАВЛЕНО 86400 * 7СЕКУНД( ТО БИШЬ ОДНИ СУТКИ УМНОЖЕННЫЕ НА 7, ТО БИШЬ В ИТОГЕ У ТЕБЯ 7 СУТОК).
    run_parse();
    ЭТО ЗАПУСК ПАРСЕРА, НЕ ПОНИМАЮ ЧТО ТУТ НЕ ПОНЯТНОГО. ТАК ВОТ ПОЛУЧАЕТСЯ, ЧТО ЕСЛИ ТЕКУЩЕЕ ВРЕМЯ БОЛЬШЕ ЧЕМ ВРЕМЯ ПОСЛЕДНЕГО ПАРСИНГА + 7 СУТОК, ТО МЫ ЗАПУСКАЕМ НОВЫЙ ПАРСИНГ.
     
    #7 GreenBear, 10 Aug 2008
    Last edited: 10 Aug 2008
    3 people like this.
  8. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Я не хочу записывать посл.обращение ни в бд ни в др.файл..возможно такое?
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Меня интересуют заголовки и как выводить все....блять!
     
  10. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    заголовки в документации протокола.
    как выводить я вообще нихера не понял.
    время можно не записывать отдельно, его можно брать из даты news2.ru, можно брать filemtime() если данные пишешь в файл - про производительности, которую ты так особо любишь это не ударит, смотри доки для ответа почему.

    или крон.
     
    1 person likes this.