ФорумПрограммированиеPHP для идиотов → Проблемы в кешированием

Проблемы в кешированием

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 8 февраля 2016 г. 4:55

    Прошу помощи, т.к. уже не знаю откуда ноги ростут. Делаю кеширование:

    define ( 'ROOT_DIR', dirname ( __FILE__ ) );
    define ( 'ENGINE_DIR', ROOT_DIR );
    
    function dle_cache($prefix) {
    
        $key = $prefix;
    
        $buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $key . ".tmp" );
    
                $file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . ".tmp" );
                $file_date = time()-$file_date;
    
                if ( $file_date > 86400 ) {
                    $buffer = false;
                    @unlink( ENGINE_DIR . "/cache/" . $key . ".tmp" );
                }
    
                return $buffer;
    }
    
    function create_cache_refer($prefix, $cache_text) {
    
        $key = $prefix;
    
            file_put_contents (ENGINE_DIR . "/cache/" . $key . ".tmp", $cache_text, LOCK_EX);
            @chmod( ENGINE_DIR . "/cache/" . $key . ".tmp", 0666 );
    }
    $tyres_options = unserialize(dle_cache( "tyres_options" ));
    if( $tyres_options === false) {
        $param = array("4", "5", "7", "8", "17");
    
        $rs1 = db_query("SELECT p.productID, pv.option_value, pv.optionID FROM ss_products as p, ss_product_options_values as pv WHERE p.categoryID = 79 AND p.productID = pv.productID AND pv.optionID in ('" . join("','", $param) . "')"); 
    
        while ($result_option = db_fetch_assoc($rs1)) {     
            if($result_option['optionID'] == "4") {
                if($result_option['option_value'] != '') { $input4[] = $result_option['option_value']; }
            }
            if($result_option['optionID'] == "5") {
                if($result_option['option_value'] != '') { $input5[] = $result_option['option_value']; }
            }
            if($result_option['optionID'] == "7") {
                if($result_option['option_value'] != '') { $input7[] = $result_option['option_value']; }
            }
            if($result_option['optionID'] == "8") {
                if($result_option['option_value'] != '') { $input8[] = $result_option['option_value']; }
            }
            if($result_option['optionID'] == "17") {
                if($result_option['option_value'] != '') { $input17[] = $result_option['option_value']; }
            }
        }
    
        $result7 = array_unique($input7);
        natsort($result7);
    
        $result8 = array_unique($input8);
        natsort($result8);
    
        $result5 = array_unique($input5);
        natsort($result5);
    
        $result17 = array_unique($input17);
        natsort($result17);
    
        $result4 = array_unique($input4);
        asort($result4);
    
        $tyres_options = array($result4, $result5, $result7, $result8, $result17);
    
        create_cache_refer( "tyres_options", serialize($tyres_options) );
    }

    Хотел так сказать приятное сделать серверу, но прикол в том что иногда при обновлении страницы она упорно стопорится на каком-то этапе и перестает обрабатываться:

    Отловить какую-то закономерность не получается, иногда все хорошо, но раз 20 обновишь страницу и снова вот такой обрезок. На другом сервере (с php 5.3.3) с таким же кодом все работает, а на этом с 5.3.2 не хочет.
    Ссылками засирать форум не буду, на скрине виден адрес сайта, можно пообновлять главную получить результат (

  • Sinkler

    Сообщения: 8086 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:05, спустя 9 минут 12 секунд

    @developer, там скорее всего какая-то ошибка вылетает, убери все собаки, которые глушат ошибки, и вывод ошибок на сервере включи, оно тебе напишет в чём причина

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:08, спустя 3 минуты 32 секунды

    @developer, там скорее всего какая-то ошибка вылетает, убери все собаки, которые глушат ошибки, и вывод ошибок на сервере включи, оно тебе напишет в чём причина

    @Sinkler, если убрать все собачки, то это уэе не dle будет ахахахаха

    Сапожник без сапог
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 8 февраля 2016 г. 5:17, спустя 8 минут 29 секунд

    @developer, там скорее всего какая-то ошибка вылетает, убери все собаки, которые глушат ошибки, и вывод ошибок на сервере включи, оно тебе напишет в чём причина

    @Sinkler, если убрать все собачки, то это уэе не dle будет ахахахаха

    @phpdude, та это не DLE, это мега Shop-Script, просто функцию дергал из DLE и кастрировал

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:19, спустя 2 минуты 15 секунд

    %)

    Сапожник без сапог
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 8 февраля 2016 г. 5:31, спустя 12 минут 6 секунд

    Полечили админы:
    [15:29:04] Admin: я права поменял
    [15:29:15] Admin: запустил nginx от пользователя nginx
    [15:29:20] Admin: а был от apache
    [15:29:50] Admin: и в папке /var/lib/nginx/tmp/ удалил все, оно заново создало

    Спустя 151 сек.

    В любом случае спасибо за пинок, я хоть Notice пофиксил, а то так лень их чистить

  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:36, спустя 4 минуты 44 секунды

    хочешь сделать серверу приятно - поставь варниш

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:48, спустя 12 минут 15 секунд

    хочешь сделать серверу приятно -

    отформатируй его

    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 5:51, спустя 2 минуты 46 секунд

    U
    Q

    @NRG, nginx уже не пафосно да?

    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 6:00, спустя 9 минут 39 секунд

    U
    Q

    @NRG, nginx уже не пафосно да?

    @phpdude, смотря для чего :)

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 6:18, спустя 17 минут 25 секунд

    U
    Q

    @NRG, nginx уже не пафосно да?

    @phpdude, смотря для чего :)

    @NRG, ой фсе фсе фсе еще один devops

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 8 февраля 2016 г. 18:57, спустя 12 часов 39 минут 8 секунд

    А для чего? Варниш имеет смысл вместе с енжинжкс?

    ιιlllιlllι унц-унц
  • Crank

    Сообщения: 541 Репутация: N Группа: Джедаи

    Spritz 9 февраля 2016 г. 0:43, спустя 5 часов 45 минут 38 секунд

    Помню мой первый бизнес был как раз магазином на Shop-Script. Такая боль была...

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 10 февраля 2016 г. 0:42, спустя 23 часа 59 минут 37 секунд

    Помню мой первый бизнес был как раз магазином на Shop-Script. Такая боль была...

    @Crank, да ладно, норм, мы терпилы :-D

Пожалуйста, авторизуйтесь, чтобы написать комментарий!