Вопросы, советы, возможные модификации и вообще все про модуль статистики кланов

Модератор: Exinaus, shw

#6880 Alesot 22 авг 2012, 13:38
Exinaus писал(а):
Alesot писал(а):И ещё про кеширование - можно ведь кэшировать каждую вкладку, а потом вываливать её через AJAX. В чём проблема то, если сделать для каждой вкладки свои данные?

Не проблема? Сделайте. Все пользователи модуля будут вам благодарны.


Выкладывайте на github, а там посмотрим.
#6881 Exinaus 22 авг 2012, 13:41
Alesot писал(а):Тело условия я же оставил, так что сейчас получаю по любому с сайта ВГ.

Ну тем более. Там же дополнительные проверки есть, в стиле:

Код: Выделить всёif(сайт доступен) {
  <получить список с сайта>
  if(были ошибки при получении списка) { получить список из бд }
} else {
получить список из бд
}

Логически подумайте: если сайт недоступен, как с него можно получить список?
#6883 Alesot 22 авг 2012, 13:49
Exinaus писал(а):Логически подумайте: если сайт недоступен, как с него можно получить список?

Может вы не поняли - я сейчас получаю напрямую с сайта, а не из БД:

Код: Выделить всё    //Geting clan roster fron wargaming or from local DB.
    //if(is_valid_url($config['td']) == true){
        $new = get_player($config['clan'],$config);
        if($new['error'] != 0){
            $new = get_last_roster();   
        }
    //}else{
        //echo 1;
        //$new = get_last_roster();
    //}


Сейчас пытаюсь понять, что не так с is_valid_url.
#6884 Exinaus 22 авг 2012, 13:57
Обратите внимание на:
Код: Выделить всё        if($new['error'] != 0){
            $new = get_last_roster();   
        }

Этот код получает список из базы, если при получении с сайта вот тут:
Код: Выделить всё$new = get_player($config['clan'],$config);

возникнут проблемы.
#6886 Alesot 22 авг 2012, 14:16
Exinaus писал(а):Обратите внимание.

И что?
Я ж написал, что получаю данные с сайта. Будут ошибки, пусть грузит из базы. Сайт будет недоступен (правда код обрабатывает только таймаут), то ошибки будут и я опять таки получу из БД.
На что я должен обратить внимание?
#6887 Exinaus 22 авг 2012, 14:25
Вот так сделайте.
Код: Выделить всё        //Geting clan roster fron wargaming or from local DB.
        //if(is_valid_url($config['td']) == true){
            $new = get_player($config['clan'],$config);
            //if($new['error'] != 0){
                //$new = get_last_roster();   
           // }
        //}else{
            //echo 1;
            //$new = get_last_roster();
        //}


Все в порядке? Если да, то правы вы, если нет, то я.
#6888 Kerb 22 авг 2012, 14:47
Exinaus писал(а):Первое. Второе свзяно с работой cron-a и е/.lkmго лучше не трогать.
Поставьте первое на 1, откройте модуль один-два раза, и снова верните 12 в настроках.

Спасибо. Сработало.

Exinaus писал(а):Потому что в main.php ini_set("display_errors", 1); никто не отменял. Иерархия знаете ли :)

В майн.пхп заглянуть не догадался :) Спасибо.

Exinaus писал(а):Работает. Просто модуль сам по себе тяжелый. И ворочает очень большим объемом данных.
Что бы понять насколько большим объемом данных оперирует модуль, можете сделать вот так: открыть views/footer.php и перед </body> добавить: <pre><? print_r($res); ?></pre>
Откройте модуль и сами посмотрите. И это будут только исходные данные. Для формирования каждой вкладки необходимо эти данные обработать. Иногда и по два раза.


Как предложение: может быть размещать в БД MySQL уже обработанные данные? Например, по крону скрипт скачивает данные, обрабатывает и в нужном формате сохраняет в БД. В этом случае не придётся формировать данные для вкладок каждый раз при открытии статистики.
#6889 Alesot 22 авг 2012, 14:49
Exinaus писал(а):Вот так сделайте.
.

Зачем? Если отвал стрима (кстати, почему сокеты, везде ж курл юзаете?) будет по таймауту, то $new['error'] будет равным 1 и будем грузить из БД.
#6890 Exinaus 22 авг 2012, 15:13
Alesot писал(а):Зачем?

Alesot писал(а):Я ж написал, что получаю данные с сайта.

Ну смотрите. Ваши слова, я объясняю как я это вижу:
Вы говорите что функция проверяющая доступность сайта говорит что сайт недоступен. При этом параллельно говорите что список мэмберов все таки получаете с сайта. Как??? Если скрипт не может получить доступ к сайту, как можно получить хоть какую нибудь информацию от него?
Вот у меня разрыв шаблона, и я предполагаю вы думаете что получаете список с сайта, а на самом деле получаете его с бд. Вот и предлагаю на время комментировать эти строки дабы проверить с базы таки или нет.

Или я ошибаюсь и список нормально получается, но is_valid_url не срабатывает?
#6891 Alesot 22 авг 2012, 15:34
Exinaus писал(а):Ну смотрите. Ваши слова, я объясняю как я это вижу:
Вы говорите что функция проверяющая доступность сайта говорит что сайт недоступен. При этом параллельно говорите что список мэмберов все таки получаете с сайта. Как? Если скрипт не может получить доступ к сайту, как можно получить хоть какую нибудь информацию от него?
Вот у меня разрыв шаблона, и я предполагаю вы думаете что получаете список с сайта, а на самом деле получаете его с бд. Вот и предлагаю на время комментировать эти строки дабы проверить с базы таки или нет.

Теперь понял, о чём вы.
Я закомментировал if, но тело оставил, т.е. функция get_player($config['clan'],$config) выполняется в любом случае. Поэтому я получаю данные с сайта.
По крайней мере пытаюсь. Если отваливается по таймауту, то в возврате get_player error будет равен 1 и я получаю через get_last_roster().
Теперь вы меня поняли? ;)

Пока искал в чём дело, комментировал всё, кроме get_player(.), так что проверять не надо.

А is_valid_url() не то чтобы говорит, что сайт недоступен, а просто криво обрабатывается бэкэндом в данном конкретном случае.

Вообще-то, is_valid_url не нужен, если мы и так проверяем в get_player отвал по таймауту. К тому же is_valid_url проверяет только главную страницу, которая может быть доступна, а вот страница с данными - нет, или, что вероятнее в случае какой-то ошибки, возвращать отличный от 200 статус.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Реклама | Adv